2012-02-13 39 views
0

我使用javascript和jquery製作了簡單的日期選擇器。選擇日期後,它會顯示在輸入框中。這個輸入框不會引發更改事件,可能是因爲它是使用javascript更改的。有什麼辦法可以發起這個活動,或者定製一個嗎?啓動價值變化事件

+0

你使用了一個datepicker插件(例如jQuery UI中的插件)還是實現你自己的? – 2012-02-13 09:09:05

+0

它應該啓動onchange事件。請使用'$(「#」+ calName +「_date」).val(cal.actualdate +「。」+(cal.month + 1)+「。」+ cal.year)來改變數值來發布你的代碼 – Yorgo 2012-02-13 09:09:56

+0

; '它添加了'$(「#」+ calName +「_date」).change();'(Thx Kane Black) – 2012-02-13 09:17:10

回答

2

運行這段代碼分配新值後:

$('input').change(); 
+1

最好是在特定輸入上觸發事件,而不是所有輸入。 – SpaceBison 2012-02-13 09:11:24

+0

非常感謝,它的工作。 – 2012-02-13 09:16:18

+0

@SpaceBison,這只是一個通用的答案。我假定Uriel_SVK知道如何將更改事件分配給特定的輸入字段。 – 2012-02-13 10:29:56

0
$("input#yourInputId").change(); 

$("input#yourInputId").trigger("change"); 

應該做的伎倆。與代表你的HTML的ID="abc"部分的文本框

  • 注意潛在的瀏覽器違規或缺乏變化的事件支持的ID替換#yourInputId - 行爲可能會有所不同,尤其是在舊的瀏覽器。
+0

jQuery規範化IE6的變更行爲 – OptimusCrime 2012-02-13 09:21:22

1

.change只是指向jQuery中的.on函數,所以最好直接使用.on。

$('#inputID').on('change', function() { 
}); 
0

有一個變化和一個輸入事件。輸入發生變化後失去焦點的第一次火災。後者在輸入改變時立即觸發。但是,在編程式地改變輸入之後沒有事件觸發。

如果您可以控制更改輸入的代碼,那麼您可以手動觸發事件,如其他答案中所述。