2011-07-16 38 views
4

我有一個地圖在一個彈出窗口。我想從後面傳遞值(座標)到我的主窗口,並且在座標改變後觸發一個方法。jQuery的變化()與隱藏的表單元素工作

在我的主要窗口,我有這樣的事件處理程序

$(".spatial").change 
    ( function() 
     { 
      alert('Handler for .change() called.'); 
     } 
    ); 

出於某種原因警報()不會被調用,當這種形式得到改變(在value屬性得到改變)。

<form action="#" id="spatial_points" class="spatial"> 
    <input type="hidden" id="start_point" class="spatial" value=""/> 
    <input type="hidden" id="end_point" class="spatial" value=""/> 
</form> 

我知道change()只適用於表單域。我想知道這是否擴展到hidden表單字段?

這是上面的代碼是什麼樣子,一旦地圖已經做出選擇:

<form id="spatial_points" class="spatial" action="#"> 
    <input id="start_point" class="spatial" type="hidden" value="(-7.9091601975133266, 127.0170435)"> 
    <input id="end_point" class="spatial" type="hidden" value="(-44.73273833806611, 154.790481)"> 
</form> 

回答

12

change事件改變通過JavaScript的值時,不會觸發。由於這是更改隱藏字段的唯一方式,因此不會生成此類事件。

你可以,不過,觸發該事件處理程序手動一旦你改變的值:

$(".spatial").val(something).change(); 
+0

非常感謝,這將做到完美。 – Ankur