8

MVC3 Razor を使用しています。@Html.TextboxFor の onchange イベントでラベルのテキストを変更したい。

これが私が試しているコードです:

オンビュー:

@Html.TextBoxFor(x => x.ItnScanCaseCode, new { @onchange = "event();" })

JavaScript:

function event() {
    document.getElementById('lblSelectedProductName').value ="sam";
}

しかし、それは機能していません。

4

4 に答える 4

24

このjquery構文を使用すると、うまく機能します。

@Html.TextBoxFor(x => x.ItnScanCaseCode, new { @id="txtid",@onchange = "onchangeevent();" })

function onchangeevent(){
        $('#txtid').val('sam');
    }
于 2013-07-26T12:38:45.287 に答える
4

これは JavaScript で実現できますが、私は を使用する方が快適ですjQuery。HTML と JavaScript を分離し、すべてのコントロールが DOM にロードされた後に on change イベントをリッスンするのが好きです。

テキスト ボックスの HTML マークアップは次のようになります。テスト目的で独自のラベル要素を追加しました。

<input id="ItnScanCaseCode" name="ItnScanCaseCode" type="text" value="" />
<label id="lblSelectedProductName">Test Label Text</label>

そして、on change イベント リスナーを追加する jQuery スクリプト:

$(document).ready(function () {
     $('#ItnScanCaseCode').change(function () {
          $('#lblSelectedProductName').text('sam');
     });
});

このラベル テキストの変更を別の関数メソッドに追加する必要がある場合は、このようにしますが、上記の方法で十分です。

$(document).ready(function () {
     function yourEventMethod() {
          $('#lblSelectedProductName').text('sam');
     };

     $('#ItnScanCaseCode').change(function () {
          yourEventMethod();
     });
});

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

于 2013-07-26T07:30:58.500 に答える
1

問題は、イベント名が異なるイベント名で試してみることです。

@Html.TextBoxFor(x => x.ItnScanCaseCode, new { @onchange = "onchangeevent();" })

function onchangeevent(){
        document.getElementById('lblSelectedProductName').value ="sam";
    }

よろしく

于 2013-07-26T07:24:05.290 に答える