0

私はMVC3アプリケーションに取り組んでおり、これらの動的ボックスの検証を含む部分ビューを使用して動的に作成されたテキストボックスを作成できましたが、これらの動的テキストボックスが変更されているかどうかを確認し、非表示フィールドの値を「ダーティ」に変更したいと思いますしたがって、次のコードを使用してテキストボックスの変更を検出し、既存のテキストボックスでは正常に機能しますが、動的に作成されたテキストボックスでは機能しません。

<script type="text/javascript">
    $(document).ready(function () {
        $("input[type='text']").change(function () {
            $("#FormState").val('dirty');
        });
    });
</script>

とにかくjavascriptでこれを行うことはありますか?

4

2 に答える 2

3

あなたがしたいことはイベント委任と呼ばれます。jQueryは現在、、、、およびを使用してlive、イベントの委任を行う3つの方法を提供しています。delegateon

他の回答は、を使用することを提案しliveましたが、それdelegateは正当な理由で非推奨になりました。パフォーマンスに問題があります。onイベントの委任に使用す​​る必要があります。これを最適に使用するには、これらの入力の適切な親要素を指定する必要があります。すべての入力に最も近い親を選択してみてください。

$('#parent-id').on('change', 'input[type="text"]', function () {
    $("#FormState").val('dirty');
});
于 2012-11-22T14:55:50.097 に答える
2

使用する:

   $("input[type='text']").live('change',function () {
        $("#FormState").val('dirty');
    });

JQuery Live

于 2012-11-22T14:52:04.323 に答える