首页 新闻 会员 周边

关于textbox赋值的问题

0
悬赏园豆:20 [已解决问题] 解决于 2010-08-31 15:08

在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;  
}  
}  
});  
}  
}



 

期星揽月的主页 期星揽月 | 初学一级 | 园豆:22
提问于:2010-08-27 10:35
< >
分享
最佳答案
0
//如果提供了事件对象,则这是一个非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;}
收获园豆:20
慧☆星 | 大侠五级 |园豆:5640 | 2010-08-29 11:57
其他回答(4)
0

你这不是异步的吗,怎么会刷新,反正你也是ajax,把那两个服务器端控件改成input普通的。

页面没其它的了吧,回车是不是提交了。

Astar | 园豆:40805 (高人七级) | 2010-08-27 10:40
0
url: 'GetNameByCode.aspx?code=' + ent.value,;

你这个是先PostBack 了, 再赋值给文本框,当然值会清除掉了。如果你是要在客户端用JS 实现两个文本框内容的同步的话,就不能用 $.ajax(

HUHU慈悲 | 园豆:9973 (大侠五级) | 2010-08-27 10:45
0

你这个textbox是服务器控件,本来就postback一次了。。。。。

顾晓北 | 园豆:10844 (专家六级) | 2010-08-27 11:15
0

如果你的页面上存在按钮的话可能会出现你说的这个现象。

首先你捕捉了enter事件。但是在处理完成后要return false;

否则可能会出现“enter”触发 服务端按钮 提交事件的情况。

解决方法:1、将按钮属性设置不是默认提交按钮。2、捕捉13后 增加 return false

邢少 | 园豆:10926 (专家六级) | 2010-08-27 12:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册