关于网友提出的“关于textbox赋值的问题”问题疑问,本网通过在网上对“关于textbox赋值的问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题:关于textbox赋值的问题描述:
在textbox1中输入值后,按回车键调用js方法,通过textbox1的值查询结果并赋值给textbox2,这里也用到了ajax技术,值也可以赋到textbox2上,但接着页面就刷新了一下,然后textbox2上的值就掉了。请问如何解决这个问题呀?
代码如下:
textbox1:<asp:TextBox ID="txtBf_org_vendee_id" runat="server" onkeydown="textEnter(this)">asp:TextBox>
textbox2:<asp:TextBox ID="txtBf_org_vendee_name" runat="server">asp:TextBox>
js代码如下:
function textEnter(obj){
var ent = obj;
if (event.keyCode ==13) {
$.ajax({
url: 'GetNameByCode.aspx?code='+ ent.value,
type: 'post',
success: function (date) {
if (date !=-1) {
document.getElementById('<%=txtBf_org_vendee_name.ClientID %>').value = date;
}
}
});
}
}
解决方案1:
//如果提供了事件对象,则这是一个非IE浏览器 if ( event && event.preventDefault )
//阻止默认浏览器动作(W3C) event.preventDefault();
else//IE中阻止函数器默认动作的方式 window.event.returnValue =false;
returnfalse;
1.取消按键的默认行为(也就是提交)
2.取消 表单 submit提交事件
解决方案2:document.getElementsByTagName('form')[0].submit=function(){returnfalse;}
如果你的页面上存在按钮的话可能会出现你说的这个现象。
首先你捕捉了enter事件。但是在处理完成后要return false;
否则可能会出现“enter”触发 服务端按钮 提交事件的情况。
解决方法:1、将按钮属性设置不是默认提交按钮。2、捕捉13后 增加 return false
解决方案3:你这个textbox是服务器控件,本来就postback一次了。。。。。
解决方案4:url: 'GetNameByCode.aspx?code='+ ent.value,;
你这个是先PostBack 了, 再赋值给文本框,当然值会清除掉了。如果你是要在客户端用JS 实现两个文本框内容的同步的话,就不能用 $.ajax(
解决方案5:你这不是异步的吗,怎么会刷新,反正你也是ajax,把那两个服务器端控件改成input普通的。
页面没其它的了吧,回车是不是提交了。