使用submit()函数时不会触发不显眼的验证

时间:2015-05-13 22:03:29

标签: javascript jquery asp.net asp.net-mvc unobtrusive-validation

在我看来,我有一个提交表单的按钮:

<input type="button" value="Save Only" id="save" onclick="submitForm('SaveOnly')" />

这是几个不同的按钮之一,所有这些按钮在不同的Controller Action方法中将以不同的方式处理。

此视图中还有submitForm(action) Javascript方法:

function submitForm(action) {
    var form = document.getElementById("myForm");
    form.action = "/Area/MyController/" + action;
    form.submit();
}

当我使用submit按钮(而不是type="button")时,不显眼的客户端验证可以正常工作。但是,当我使用此submitForm(action)函数时,客户端验证不会发生。如何触发客户端验证?

1 个答案:

答案 0 :(得分:1)

您可以按如下方式手动调用:

function submitForm(action) {
    var $form = $("#myForm");
    $form.action = "/Area/MyController/" + action;

    $.validator.unobtrusive.parse($form);
    $form.validate();

    if ($form.valid()) {
       $form.submit();
    }
}