簡體   English   中英

ASP.NET MVC:如果客戶端驗證通過,則禁用“提交”按鈕

[英]ASP.NET MVC: Disable Submit button if Client Validation passes

我有一個啟用了客戶端驗證的簡單MVC4表單:

 @{ Html.EnableClientValidation(); }
 @{ Html.EnableUnobtrusiveJavaScript(); }
 @using (Html.BeginForm("Search", "Search", FormMethod.Post, new { id = "frmMain" }))
    {
      @Html.AntiForgeryToken() .....
      <input type="submit" value="Search" id="btnSubmit" />

當用戶單擊客戶端上的提交和所有驗證通過時 ,我希望按照下面的jQuery禁用提交按鈕。 我怎么知道驗證是否已通過我的jQuery腳本中的客戶端?

<script type="text/javascript">

$(document).ready(function () {
    $('input[type=submit]').click(function (e) {
        $(this).attr('disabled', true);
        $(this).attr('value', 'Working');
        $('#frmMain').submit();
    });
});

您可以將此代碼掛鈎到表單驗證器中。 只需確保它在jquery.validator.unobtrusive之后執行。

<script>
    $("#you-form-id").data("validator").settings.submitHandler = function(form) {
         $("#submit-button").attr("disabled",true).val("Working");
         form.submit();
    };
</script>

從控制器操作返回partail時我遇到了一些問題。 相反,我掛鈎到提交函數並檢查表單是否有效如下:

        $('form').submit(function () {
            if ($(this).valid()) {
                $('#order-form-submit-button').attr("disabled", true).val("wait...");
            }
        });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM