2014-03-27 110 views
0

嗨,大家好,我知道onchange不會觸發,如果你以編程方式填寫文本框購買我該如何做到這一點。Onchange不起作用

我有兩個文本框是隻讀的,當你點擊一個日期選擇器出現。

我有startdate和enddate作爲我的文本框。

我希望在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> 
+3

我們展示了一個小提琴或提供你的代碼。 –

+5

通常您只需觸發更改事件,但使用datepickers通常會有內置的事件,您可以使用它們。 – adeneo

+0

[將文本框的值放入另一個文本框]的可能重複(http://stackoverflow.com/questions/22626320/put-value-of-textbox-into-another-textbox) – user13500

回答

-1

僅當用戶更改輸入值時,onchange事件纔會觸發。如果輸入以編程方式更改,它不應該觸發。

而是從任何函數調用該函數來設置該值。

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'); 

小提琴:http://jsfiddle.net/XB3RK/