小弟遇到如下问题:
小弟用了一段JavaScript制作了一个日期下拉选择的控件
(一个textbox用来获得日历div内的选择的值,一个按钮,点了之后出现装有日历js的div)
<input type="text" id="xzrq" name="xzrq" runat="server" size="26" maxlength="19">
<input type="button" name="change" value=".." onclick="show_date(change,'','',xzrq)">
小弟想实现的是:
当点击客户端按钮change,然后选择了日期,此时需要日期计算一些值(通过选择日期变更来得到的值)。
但是小弟发现,当小弟选择了div内日历内的值后,值传递到xzrq控件内,
值改变了,却没发生xzrq控件的“onChange”事件,
小弟又手工改了xzrq控件内的日期值,这时是可以触发“onChange”事件。
如果用onBlur事件是能成功触发的(但是不合适用,因为他是在焦点离开后才得到不是当前的选择日期的值,而是本次的上一次的值)。
----------------------
现在文本框id="xzrq" name="xzrq" 不能成功触发onChange事件,onBlur事件也不能用,请教各位,应该怎么处理~~~
如果觉得小弟描述不清楚的,请指出,小弟重新描述,谢谢~~~
小弟用了一段JavaScript制作了一个日期下拉选择的控件
(一个textbox用来获得日历div内的选择的值,一个按钮,点了之后出现装有日历js的div)
<input type="text" id="xzrq" name="xzrq" runat="server" size="26" maxlength="19">
<input type="button" name="change" value=".." onclick="show_date(change,'','',xzrq)">
小弟想实现的是:
当点击客户端按钮change,然后选择了日期,此时需要日期计算一些值(通过选择日期变更来得到的值)。
但是小弟发现,当小弟选择了div内日历内的值后,值传递到xzrq控件内,
值改变了,却没发生xzrq控件的“onChange”事件,
小弟又手工改了xzrq控件内的日期值,这时是可以触发“onChange”事件。
如果用onBlur事件是能成功触发的(但是不合适用,因为他是在焦点离开后才得到不是当前的选择日期的值,而是本次的上一次的值)。
----------------------
现在文本框id="xzrq" name="xzrq" 不能成功触发onChange事件,onBlur事件也不能用,请教各位,应该怎么处理~~~
如果觉得小弟描述不清楚的,请指出,小弟重新描述,谢谢~~~
解决方案 »
- 为什么我在HTML中可以成功随页面滚动的QQ在线客服,移动到ASP.NET页面中就不能够滚动了啊?
- asp.net中插入一个音乐播放器
- window.close()在FF下无效
- 如何设计表(表的设计思想)
- asp.net中前端返回history.go(-1)或history.back()的问题
- 通过Ajax方法返回的DataSet在js中没有数据,是什么原因啊
- 求一个替换的正则表达式
- (急)asp.net做个类似Discuz NT网站的登录功能!
- 求助:vs2008中选中td后属性栏中没有style是什么原因
- 谁有火车票查询系统的源码 高价求!
- 加急问题(100分)求ASP.NET读取数据,用js/ajax以树型菜单显示数据!帮忙谢谢~~
- 日期格式变换 ,马上结账
如果一定要触发在赋值语句后加-
document.getElementById('xzrq').onchange()
仍然还是不行哦,焦点是离开了,他仍然不触发onChange事件。
后台代码
xzrq.Attributes.Add("onChange", "bb();")
页面js代码
function bb()
{
document.all.Label11.innerText = document.getElementById('Calendar1').value;
document.getElementById('Calendar1').onChange();
}
都触发不了他的onChange,前台的js还怎么执行呢~。
==>
xzrq.Attributes.Add("onchange", "javascript:bb();")
||
xzrq.Attributes.Add("onperprotychange", "javascript:bb();")
js我不是很懂,
是不是想表述js运算符优先级别,
呵呵,但是还是没解决小弟的问题~~~~小弟的问题是用js写了日历的选择日期的效果,
选择后值在textbox中显示,
遇到的问题是这个textbox不管得到了焦点还是失去了焦点都不触发onChange事件,
请各位指点如何解决或者变通的方法
值改变了,却没发生xzrq控件的“onChange”事件,
小弟又手工改了xzrq控件内的日期值,这时是可以触发“onChange”事件。
------------------------------------------------------------------------
一直理解为你要触发xzrq的onchange事件
从你的代码里看document.getElementById('Calendar1').onChange();又去触发
Calendar1??你到底是要谁改变了触发了谁啊??
前台生成代码:
<input onfocus="setday(this);" name="xzrq" type="text" value="2007-09-25" id="xzrq" onperprotychange="javascript:bb();" />
后台代码:
xzrq.Attributes.Add("onperprotychange", "javascript:bb();")
//js:
<script language="javascript">
function bb()
{
document.all.Label11.innerText = document.getElementById('xzrq').value;
document.getElementById('xzrq').onperprotychange();//这个实验过
//document.getElementById('xzrq').onChange();//这个也实验过~~~
}
</script>请再指教~~
需要改变了Calendar1后触发onChange事件
问题是他不触发~~~
(ps: Calendar1控件就是代码的xzrq控件~~)
~~~~~~~~~~~~~~~~~~~~~~~~
埃,还得去猜你到底要干什么,真累<input onfocus="setDay(this)" name="xzrq" type="text" value="2007-09-25" id="xzrq" onchange="bb();" /><script type="text/javascript">
function setDay(obj)
{
obj.value = "2007-19-25";
obj.onchange();
}
function bb()
{
document.all.Label11.innerText = document.getElementById('xzrq').value;
}
</script>
OnChange事件要在失去焦点之后触发,只有当用户修改了文本框中的文本,然后失去焦点后才触发,如果用户没有修改文本,失去焦点 时是不会触发OnChange事件的。我获得值是点击div层内的日历后得到值,此时焦点是已经离开了Calendar1(或者是xzrq)控件了,点击了之后值才赋值到Calendar1(或者是xzrq)控件内。(按照我的理解是不是已经失去了触发onChange的时机??不知道是不是对的)。
~~~~~~~~~~~~~~~~~~~~~~
如果我用键盘直接输入,那是能触发onChange的事件的。
请再指教一下
-----------------------------
哦,为什么我这样用键盘也不能触发事件了?<input type="text" id="txt1" onchange="alert('change');" />
你给我的代码测试成功的,
得到焦点的时候对label控件的innerText成功赋值了。
~~
我再品味一下~
<input name="TextBox1" type="text" id="TextBox1" onChange="alert('aaa')" />?
不可以吗?
能成功触发啊?
他符合要在焦点离开输入框的焦点后才能引发的条件啊~?
请指教~
其实只要在你的如期选择控件里加一个激发onchange事件的函数就可以了。
比如:
你的选择时间的控件肯定要给文本框返回值的:xzrq.value=“2010-11-11”;
你只要在这行代码后面再加一个激发onchange事件的函数:xzrq.onchange();xzrq.value=“2010-11-11”;xzrq.onchange();
然后在文本框中写上onchange=“alert('执行了');”;