[英]Onchange doesn't work
大家好,我知道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>
嘗試使用addEventListener()
代替Event.observe()
,並且將fireEvent
函數未定義為函數,因為不要將function
字放在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');
小提琴: http : //jsfiddle.net/XB3RK/
僅當用戶更改輸入值時才觸發onchange事件。 如果以編程方式更改輸入,則不應觸發。
從任何設置該值的函數中調用該函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.