2011-11-07 22 views
1

私はdatepickersを使って奇妙な状況に陥っています。MVC3 - 複数の要素が同じIDを持つ場合のjQueryのdatePicker

私は場所のリストを持つ画面を持っており、各場所については編集をクリックしてその場所を編集できます。編集リンクは編集リンクの下に表示され、一度に複数の場所を編集できます。つまり、同じビューが画面に複数回レンダリングされるため、複数のフィールドが同じIDで存在します(4つの場所を編集すると、4つの「DateOpened」フィールドが作成されます)。

だから、私はそうのようにそれを必要とするあらゆる分野にdatepickersを追加javascriptの私のビューをロードする場合:私は、日付をクリックすると、あなたはおそらくすでに、考え出したとして

$(document).ready(function() { 
    var elements = $(".NeedsDatePicker > td > input"); 
    $(".NeedsDatePicker > td > input").datepicker(); 
    $(".NeedsDatePicker").removeClass("NeedsDatePicker"); 
}); 

は、正常に動作しますが、カレンダーでは、複数の編集ウィンドウが開いているときに、最初の "DateOpened"フィールドが表示されます。

一般的なjQueryの選択と同様に、datepickerに特定の親の中にフィールドを使用するよう指示する方法はありますか?

$("#DateOpened", "Location-134").doWhatever... 

... MVCのUpdateModel()関数を壊さずにフィールドに異なるIDを与える方法はありますか?またはその他のアドバイス?

答えて

1

IDをHTML DOM内で一意にする必要があります。 jQueryを含むDOM操作ライブラリ/フレームワークのほとんどは、すべてではないにしても、この前提を組み込んでいます。

形で同じIDを避けるために、SO WRT上のいくつかの質問があります

+0

しかし、MVCのTryUpdateModelを壊さないだろうか? "LocationAddress"という名前のフィールドを見つけるのではなく、LocationAddress1,2などを検索して、それがバインドしているモデルと一致しないようにします。 –

+0

同じIDを持つ複数の要素を持つ場合、同じ要素を複数回更新するのではないでしょうか?私はこれを回避する方法は、同じプロパティ名でモデルをラッピングするビューモデルを持つことかもしれないと思う。 –

+0

ありがとうウィリアム;私はIDをユニークに保ち、それを動作させました。 –

関連する問題