2

javascript が $(document).ready(function.... を呼び出しているときに、MVC Razor HTML ヘルパーが (DOM で) レンダリングされないことに気付きました。 DOM オブジェクトを見つけます。

Javascript

$(document).ready(function () {
    $('input:radio,select').change(function () {
        DO STUFF...

HTML ヘルパー

@Html.RadioButtonList(m => m.ItemType, new SelectList(Model.ItemTypes, "Name", "Name")

@Html.DropDownListFor(n => n.ApartmentFloor, new SelectList(Model.ApartmentFloors, "Id", "Floor"), new { @id = "floorsSelect", @class = "exists" })

通常、ラジオボタンとドロップダウンは .change 関数を取得する必要がありますが、.change が追加されたときにまだレンダリングされていないため、その機能を取得できません。

「ドキュメントの準備ができている」のではなく、「HTMLヘルパーの準備ができている」ようにする方法はありますか?

編集

クライアントがレンダリングを開始する前に HTML ヘルパーがサーバー上で実行されるため、同様に終了する必要があると人々は指摘しています。「ドキュメントの準備ができている」JSをデバッグすると、HTMLヘルパーオブジェクトはまだレンダリングされていませんが、ページの残りの部分はレンダリングされているため、これは当てはまらないようです。

HTMLヘルパーオブジェクトに「ロード時」機能を追加する方法、またはカミソリ構文を使用してcshtmlファイルから直接「変更」機能を追加する方法はありますか?

4

2 に答える 2

0

このようにイベントを登録してみると、

      $('input:radio,select').on("change" ,function () { }) ;

これが役立つことを願っています。

于 2012-10-17T08:32:57.360 に答える
0

問題の解決策を投稿したことがないことに気付きました。ドキュメントの準備が整う前に HTML ヘルパーをレンダリングする必要があると指摘されていましたが、私には当てはまりませんでした。そこで私がしたことは、代わりに HTML ヘルパーにイベント ハンドラーを直接追加することでした。

@Html.RadioButtonList(m => m.MyObject, new SelectList(Model.MyObjects, "Name", "Name"), "inputChangeHandler($(this));")

素晴らしい作品=)

于 2013-02-15T09:58:09.400 に答える