webmethod结果中的文本框值没有改变
Posted
技术标签:
【中文标题】webmethod结果中的文本框值没有改变【英文标题】:Textbox value not changing in webmethod result 【发布时间】:2018-02-24 05:09:09 【问题描述】:这里Webmethod返回值正确,标签值根据条件变化,但txtusername的值没有变化
<div class="col-sm-6">
<p style="margin: 0 0 5px 0;"><b>User Name</b> <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 = '';但失败了 请帮帮我
【问题讨论】:
你试过lbl1.value = "something"
吗?不知道为什么你使用一半 javascript 一半 jquery
@seOng11 谢谢它的作品..这不是一个好方法吗??我不期望在 jquery 中。只是一个初学者。
不说不是好方法,长此以往,会变成意大利面条,以后很难解决
【参考方案1】:
使用
lbl1.value = "something"
对于你的写作方式,你没有充分利用jquery
而不是
lbl1 = document.getElementById('<%=txtUserName.ClientID %>');
你可以写成
lbl1 = $('input[id$="txtUserName"]');
id$
表示以
然后你可以使用lbl1.val("something")
来填充它
你可以放弃下面的脚本,
$('<%=txtUserName.ClientID %>').val('');
如果你坚持使用它,你需要添加
$('#' +'<%=txtUserName.ClientID %>').val('');
【讨论】:
以上是关于webmethod结果中的文本框值没有改变的主要内容,如果未能解决你的问题,请参考以下文章