文本框值在webmethod结果中未更改

c# jquery webmethod

87 观看

1回复

48 作者的声誉

在这里,Webmethod正确返回值,并且标签值根据条件而更改,但是txtusername的值未更改

<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 =''; 但失败了请帮助我

作者: Jks 的来源 发布者: 2017 年 9 月 15 日

回应 1


0

1915 作者的声誉

决定

采用

lbl1.value = "something"

对于您的写作方式,您没有充分利用 jquery

代替

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

你可以写成

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

id$ 表示以结尾的id

然后您可以使用lbl1.val("something")它来填充它

您可以放弃以下脚本,

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

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

$('#' +'<%=txtUserName.ClientID %>').val('');
作者: Se0ng11 发布者: 2017 年 9 月 15 日
32x32