2017-09-15 77 views
0

这里的WebMethod返回值正确和标签值的变化按条件,但txtusername的价值是不会改变文本框的值中的WebMethod结果不改变

<div class="col-sm-6"> 
<p style="margin: 0 0 5px 0;"><b>User Name</b>&nbsp;<span class="pull-right"> 
    <asp:Label ID="usernamelbl" Font-Size="X-Small" runat="server"></asp:Label></span></p> 
<asp:TextBox ID="txtUserName" CssClass="form-control" runat="server" placeholder="Enter UserName" 
OnChange="CheckUserName(this)"></asp:TextBox> 
</div> 

jQuery的

function CheckUserName(oName) { 
       PageMethods.UserNameChecker(oName.value, OnSucceeded); 
      } 
      function OnSucceeded(result, userContext, methodName) { 
       lbl = document.getElementById('<%=usernamelbl.ClientID %>'); 
       lbl1 = document.getElementById('<%=txtUserName.ClientID %>'); 
       if (methodName == "UserNameChecker") { 
        if (result == true) { 
         lbl.innerHTML = 'Try Another Username'; 
         lbl.style.color = "red"; 
         $('<%=txtUserName.ClientID %>').val(''); 
lbl1.style.color = "Blue"; 
        } 
        else { 
         lbl.innerHTML = ''; 
        } 
       } 
      } 

这工作( lbl1.style.color =“Blue”;)罚款但价值不变。我也尝试lbl1.innerHTML ='';但未能 请帮我

+0

你试过'lbl1.value =“something”'?不知道为什么你使用一半的JavaScript一半jQuery虽然 – Se0ng11

+0

@ seOng11谢谢它的作品..是不是一个好方法?我不期望在jQuery中。只是一个初学者。 – Jks

+0

不说并不是一个好方法,从长远来看,它将成为意大利面,很难在将来解决 – Se0ng11

回答

0

使用

lbl1.value = "something" 

为你写的方式,你没有充分利用的jquery

代替

lbl1 = document.getElementById('<%=txtUserName.ClientID %>'); 

可以作为

lbl1 = $('input[id$="txtUserName"]'); 

id$意味着ID与

结束,那么你可以使用lbl1.val("something")来填充它

,你可以抛弃下面的脚本,

$('<%=txtUserName.ClientID %>').val(''); 

如果你坚持使用它,你需要添加

$('#' +'<%=txtUserName.ClientID %>').val('');