TextBox JS前台赋值触发Onchange事件,屏蔽键盘操作

来源:互联网 发布:apache cxf 编辑:程序博客网 时间:2024/04/30 15:29

1.  TextBox JS前台赋值触发Onchange事件

1)     1.用动态生成的<INPUT>或着Textbox时通过jsinput输入框赋值,并不触发input输入框的onchange 事件可以通过以下下方式来解决。 

后台C#代码:

System.Web.UI.WebControls.TextBoxtextbox = new System.Web.UI.WebControls.TextBox();

textbox.Attributes.Add("onkeydown","DateTimekeydown(this)");

前台JS代码:

function DateTimekeydown(control) ////control参数表示textbox{         control.value = "";         control.fireEvent("onchange");         return;}

或者

function DateTimekeydown(control) //control参数表示textbox { control.value = ""; control.onchange();        return;  }

2)     用动态生成的<INPUT>或着Textbox时只能过时间控件DatePicker给input入框赋值,并且除了BackSpace和Delete键外,其他的按键都不能输入控件,可以通以下下方式来解决。 

后台C#代码:

System.Web.UI.WebControls.TextBoxtextbox = new System.Web.UI.WebControls.TextBox();textbox.Attributes.Add("readonly","readonly");textbox.Attributes.Add("onkeydown","DateTimekeydown(this)");

前台JS代码:

function DateTimekeydown(control){var control_id = "#" + control.id;var curKey = event.Which ||event.keyCode;//delete , 当按下Delete键时Textbox值空,触发onchange事件if (curKey == 46)   {control.value = "";control.fireEvent("onchange");return;}//backspace,当按下Backspace键时Textbox值空,触发onchange事件,同时不让页面刷新if (curKey== 8){if (event.keyCode != 0){event.keyCode = 0;event.returnValue = false;}else if(event.which != 0){event.which = 0;event.returnValue = false;}control.value = "";control.fireEvent("onchange");return;}return;}


3)     Textboxreadonly属性

ReadOnly属性学习引自http://kooyee.iteye.com/blog/593214

       在ASP.NET 2.0后, 当postback页面时,如果Textbox是readonly的话,Textbox中改变的值会被忽略。 也就是说如果在前台用js修改了textbox的值, server不会把新的值写入textbox的‘Text’属性。 所以不会引发TextChanged event。 这个机制是用来防止用户绕开Textbox的readonly状态而引发的安全问题。  如果需要避开这个机制,可以用:

   TextBox.Attributes.Add("readonly","readonly")  

 

 

原创粉丝点击