2015-05-18 88 views
1

我想驗證使用Jquery的按鈕單擊字段,但問題是,似乎事件和jQuery事件後面的代碼並行運行。按鈕上的客戶端JQuery驗證在asp.net中單擊?

(修訂版)

<asp:Button ID="btnsave" runat="server" ClientIDMode="Static" OnClientClick="return clientFunction()" CssClass="ButtonText" 
        Text="SAVE" OnClick="btnsave_Click" /> 
        &nbsp; 

客戶端驗證:

<script type="text/javascript"> 

    function clientFunction() { 

     var isValid = true; 
     $('#txtsupplieruserid,#txtsuppliername,#txtbusinessemailid,#txtorganizationname,#txtphonenumber,#txtcity,#txtstate,#txtpostalcode,#txtaddress').each(function() { 
      if ($.trim($(this).val()) == '') { 
       isValid = false; 
       $(this).css({ 
        "border": "1px solid red", 
        "background": "#FFCECE" 
       }); 
      } 
      else { 
       $(this).css({ 
        "border": "", 
        "background": "" 
       }); 
      } 
     }); 
     if (isValid == false) { 

      e.preventDefault(); 
      return isValid; 
     } 
     else { 
      return isValid; 
     } 
    } 
</script> 

我想通過jQuery來驗證第一比,如果它通過客戶端驗證到後面的代碼。我想用Jquery而不是純Javascript來做到這一點。

+0

更改您的jquery點擊處理程序返回true或false。然後使用return返回true(並繼續運行服務器端函數)或false(不運行服務器端函數)。 –

+0

@DarrenS只是將返回值更改爲true或false就足夠了? – Arbaaz

+0

通常,我會在我的按鈕上使用OnClientClick屬性來調用返回布爾值的客戶端函數。例如如果函數返回true,它將引發一個回傳並繼續處理你的服務器端btnSave_Click函數。 –

回答

1

您可以使用OnClientClick進行客戶端驗證,並且驗證通過return true否則return false。如果返回true,則服務器端函數將被調用,否則不會。

<asp:Button ID="btnsave" runat="server" ClientIDMode="Static" CssClass="ButtonText" Text="SAVE" OnClientClick="return clientFunction()" onclick="btnsave_Click" /> 


function clientFunction() 
{ 

    var isValid = true; 
    $('#txtsupplieruserid,#txtsuppliername,#txtbusinessemailid,#txtorganizationname,#txtphonenumber,#txtcity,#txtstate,#txtpostalcode,#txtaddress').each(function() 
    { 
      if ($.trim($(this).val()) == '') { 
       isValid = false; 
       $(this).css({ 
        "border": "1px solid red", 
        "background": "#FFCECE" 
       }); 
      } 
      else { 
       $(this).css({ 
        "border": "", 
        "background": "" 
       }); 
      } 
    }); 
     if (isValid == false) { 
      return false; 
     } 
     else { 
      return true; 
     } 
} 

如果你的控件server controls比你可能需要使用ClientIDMode="Static"。所以他們的ID保持不變。

+0

這將如何與我的代碼一起工作?我的意思是你可以請你介紹我在你的答案中發佈的代碼嗎? – Arbaaz

+0

現在檢查答案。 – Mairaj

+0

它不起作用。它仍然觸及代碼隱藏。即使沒有一個值爲 – Arbaaz