嗨,大家好我知道如果以编程方式填写文本框,onchange并不会解雇我怎样才能做到这一点。
我有两个只读的文本框,当你点击日期选择器出现时。
我已经作为我的文本框开始和结束。
我希望在startdate值发生变化时将startdate值复制到enddate值。
谢谢大家的帮助,我也是javascript和JQuery的新手
我的代码
我使用此代码只是为了看看当我更改值
时我是否可以打开弹出窗口<script>
function fireEvent(element,event){
if (document.createEventObject){
// dispatch for IE
var evt = document.createEventObject();
return element.fireEvent('on'+event,evt)
}
else{
// dispatch for firefox + others
var evt = document.createEvent("HTMLEvents");
evt.initEvent(event, true, true ); // event type,bubbling,cancelable
return !element.dispatchEvent(evt);
}
}
</script>
<td width="228" align="left" valign="top" bgcolor="#D8ABAD">From:
<label for="input1"></label>
<input type="text" name="startdate" id="startdate" required="required" value="04/12/2014"/>
<script>
obj = document.getElementById("startdate");
Event.observe(obj,'change',function(){alert('hi');});
fireEvent(obj,'change');
</script>
</td>
<td width="23" align="center" valign="top" bgcolor="#D8ABAD">To:</td>
<td width="267" align="left" valign="top" bgcolor="#D8ABAD">
<label for="enddate"></label>
<input type="text" name="enddate" id="enddate" required="required" value="04/12/2014"/>
</td>
答案 0 :(得分:1)
尝试使用addEventListener()
而不是Event.observe()
,并且您的fireEvent
函数未定义为函数,因为您没有在函数前放置function
字。
javascript应该是这样的
function fireEvent(element,event) {
if (document.createEventObject) { // dispatch for IE
var evt = document.createEventObject();
return element.fireEvent('on'+event,evt);
} else { // dispatch for firefox + others
var evt = document.createEvent("HTMLEvents");
evt.initEvent(event, true, true ); // event type,bubbling,cancelable
return !element.dispatchEvent(evt);
}
}
obj = document.getElementById("startdate");
obj.addEventListener('change',function(){alert('hi');}, false);
fireEvent(obj,'change');
答案 1 :(得分:-1)
只有在用户更改输入值时才会触发onchange事件。如果以编程方式更改输入,则不应触发。
从任何函数调用函数来设置值。