2009-11-30 81 views
0

我有一個簡單的表單。它有一個字段和一個提交按鈕。 我隱藏了提交按鈕。提交按鈕實際上是以一個錨點 標記觸發的,該標記調用一個使用jQuery獲取元素並執行 click()的javascript方法。這工作正常,表單帖子和記錄已成功寫入數據庫。xVal和jQuery提交按鈕

所以現在我添加了xVal進行驗證。我正在嘗試添加簡單的客戶端驗證。

當我點擊錨標籤時它不起作用。但是,如果我取消隱藏提交按鈕並嘗試發佈表單而不是使用調用js方法的定位標記,它確實可行。所以基本上我想弄清楚爲什麼當我使用js方法觸發點擊提交按鈕時它不起作用。

任何偉大的想法?非常感謝!

繼承人一些代碼...

<div id="manufacturerButtons" class="moduleRow"> 
      <%= Html.ActionImage(Url.Content("~/Content/Icons/bullet_go_back.png"), "Back To Admin", "Admin", "Admin")%> 
      | <a class="actionImage" href="javascript: addManufacturer();"> 
       <img border="0" src="<%= Url.Content("~/Content/Icons/accept.png")%>">&nbsp;<span>Add 
        Manufacturer </span></a> 
     </div> 
     <div class="moduleContent"> 
      <div id="manufacturerContainer"> 
       <div class="moduleRow"> 
        <h3> 
         New Manufacturer</h3> 
       </div> 
       <div class="moduleRow"> 
        <% Html.BeginForm("NewManufacturer", "Admin", FormMethod.Post); %> 
        <table class="noBorder" border="0" cellpadding="0" cellspacing="0"> 
         <tr> 
          <td style="width: 125px"> 
           <h6>Name:</h6> 
          </td> 
          <td> 
           <%= Html.TextBox("Name") %> 
          </td> 
         </tr> 
         <tr style="display: none;"> 
          <td> 
           &nbsp; 
          </td> 
          <td> 
           <input type="submit" id="btnAdd" name="btnAdd" /> 
          </td> 
         </tr> 
        </table> 
        <% Html.EndForm(); %> 
        <%= Html.ClientSideValidation<EquipmentManufacturer>() %> 
       </div> 

      </div> 

的Javascript:

function addManufacturer() { 
    //$('form').submit(); // doesnt work when trying to validate either 
    $('#btnAdd').click(); 
    return true; 
} 

回答

1

你需要做的是什麼觸發你的窗體上的jQuery驗證。嘗試:

$('form').validate(); 

要提交成功驗證的形式,嘗試:

$('form').validate({ submitHandler: function(form) { form.submit(); } }); 

需要注意的是「形式」應該是一個有效的jQuery選擇您的形式...

+0

這實際上相當多做到了。我不得不改變它一點,但你的想法是非常正確的。我不得不添加一個表單()來使其工作。 這是我做的... function addManufacturer(){ var valid = $(document.forms [0])。validate()。form(); if(valid){('#btnAdd')。click(); } } – Gabe 2009-11-30 21:36:01