在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;}}});}}
//如果提供了事件对象,则这是一个非IE浏览器
if ( event && event.preventDefault )
//阻止默认浏览器动作(W3C)
event.preventDefault();
else
//IE中阻止函数器默认动作的方式
window.event.returnValue = false;
return false;
1.取消按键的默认行为(也就是提交)
2.取消 表单 submit提交事件
document.getElementsByTagName('form')[0].submit=function(){return false;}
你这不是异步的吗,怎么会刷新,反正你也是ajax,把那两个服务器端控件改成input普通的。
页面没其它的了吧,回车是不是提交了。
url: 'GetNameByCode.aspx?code=' + ent.value,;
你这个是先PostBack 了, 再赋值给文本框,当然值会清除掉了。如果你是要在客户端用JS 实现两个文本框内容的同步的话,就不能用 $.ajax(
你这个textbox是服务器控件,本来就postback一次了。。。。。
如果你的页面上存在按钮的话可能会出现你说的这个现象。
首先你捕捉了enter事件。但是在处理完成后要return false;
否则可能会出现“enter”触发 服务端按钮 提交事件的情况。
解决方法:1、将按钮属性设置不是默认提交按钮。2、捕捉13后 增加 return false