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

3 篇文章 0 订阅
3 篇文章 0 订阅

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")  

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值