0

jquery ajax呼び出しを介してコンテンツが動的にロードされるときに、検証を適用できない状況で立ち往生しています...

私はどこでもこの解決策を見つけましたが、このコードを書く場所を使用する方法がわかりません??

$('form').removeData("validator");
$('form').removeData("unobtrusiveValidation");
$.validator.unobtrusive.parse('form');

私のコードは私の前の質問でここにあります

4

1 に答える 1

2

これは古い質問だと思います。しかし、将来ここに来る人にとっては役に立つかもしれません。

これは、ajax リクエストが成功した後に上記のコードを実行するのと同じくらい簡単です。

$.ajax({
    url: editPageUrl,
    contentType: 'application/html; charset=utf-8',
    type: 'GET',
    dataType: 'html',
    data: { id: taskId },
    cache: false,
    success: function (data) {
        var taskBody = $('#task-body');
        $(taskBody).html(data);
        var $form = $(taskBody).find('form');
        $form.removeData("validator");
        $form.removeData("unobtrusiveValidation");
        $.validator.unobtrusive.parse($form);
    }
});

ajax リクエストが終了したら、検証をリセットするだけで機能します。これを行うと、すべての要素が jquery 検証に追加され、#taskeditform-b​​ody 内のフォームの送信時に検証がトリガーされます

于 2014-03-25T13:03:05.547 に答える