0

我正在研究ASP.NET MVC 5 Web應用程序。我想提出以下jQuery代碼在我的程序,以確保圖像顯示在頁面上形成之前提交:ASP.NET MVC應用程序:添加了jQuery事件來提交按鈕點擊,現在jQuery驗證插件不再有效。

$('#submitButton').click(function (e) { 
    //If Corporation is selected as business type 
    if ($('#businessStructure').val() == "Corporation") { 
     //Checks CEO signature present 
     if ($("#signImage").length == 0 || $("#signImage").attr("src") == "") { 
      //block the user from submitting and check for signature 
      e.preventDefault(); 
      alert("Please sign and save your signature in the CEO signature pad"); 
      $("#ceoError").show(); 
     } 
     else { 
      //all good, an image exists 
      $('form').submit(); 
     } 
    } 
}); 

此代碼(我猜是由於e.preventDefault())現在完全忽略了MVC應用程序附帶的jQuery Validate插件。但是,如果任何文本框缺少信息(jQuery Validate)並且簽名缺失(上面的代碼),我需要阻止表單提交。

我明白爲什麼會發生這種情況從this post。我該如何去修復這段代碼,以便我能夠在提交按鈕單擊時使用jQuery Validate和新的代碼函數?

回答

0

只要你有所需unobutrusive jQuery驗證相關的腳本文件,當你提交表單,確認將被執行,如果任何與形式將不會被提交來驗證消息將顯示服務器。因此,請確保您已包含在你頁面

<script src="~/Scripts/jquery.validate.min.js"></script> 
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script> 

所需的腳本,如果你有在頁面腳本錯誤,它可能是引起預期當前的腳本到不行。我建議你檢查一下你的browsre控制檯是否有頁面中的任何腳本錯誤。

正如我上面提到的,你可以同時使用jQuery驗證和你的自定義條件。如果只在表單通過驗證時纔想執行自定義條件,則可以使用表單上的valid()來確定表單是否存在任何驗證錯誤。

現在

$('#submitButton').click(function (e) { 
    e.preventDefault(); 

    var isvalid = $(this).closest("form").valid(); 
    if(isValid) 
    { 
     console.log('form validation passed'); 
     //do something custom 
    } 
}); 
相關問題