本文主要是介绍TextBox JS前台赋值触发Onchange事件,屏蔽键盘操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1. TextBox JS前台赋值触发Onchange事件
1) 1.用动态生成的<INPUT>或着Textbox时通过js给input输入框赋值,并不触发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) Textbox的readonly属性
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")
这篇关于TextBox JS前台赋值触发Onchange事件,屏蔽键盘操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!