2009-11-30 92 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