2011-07-16 14 views
4

私はマップをポップアップウィンドウに表示しています。私はその値(座標)を元のウィンドウに戻して、座標が変更されたらメソッドを起動させたいと思います。私のメインウィンドウでjQuery change()は非表示のフォーム要素で動作しますか

は、私はいくつかの理由のために、このイベントハンドラ

$(".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フォームフィールドに及ぶのかどうか疑問に思っていますか?

これは、上記のコードは、一度マップ選択が行われているように見えるものです:JavaScriptを経由して値を変更する場合

<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イベントがトリガされません。これが隠しフィールドを変更する唯一の方法であるため、そのようなイベントは生成されません。

あなたが値を変更したら、あなたは、しかし、手動でイベントハンドラをトリガすることができます。

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

おかげで非常に多く、これは完全に行います。 – Ankur

関連する問題