2014-02-24 90 views
0

虽然我四处搜索,并尝试所有命中和试用的常见问题..但没有用..仍然jQuery验证的问题坚持ajax调用之前..形式越来越提交没有任何验证jquery验证之前ajax表单提交多种形式

请提供任何信息,在那里我可能会得到错误的

<script type="text/javascript"> 
    $(document).ready(function() { 


    $('#myform').validate({ 

        rules: { 
         objective: { 
          required: true, 
          minlength: 150 
         }, 
        }, 

       submitHandler: function() 
        { 
          var dataString = $("#myform").serializeArray(); 
          $("#flash").show(); 
          $.ajax({ 
           url: "xyz.php", 
           type: "POST", 
           data: dataString, 
           cache: false, 
           async: false, 
           error: function (jqXHR, textStatus, errorThrown) { 
            alert('error'); 
           }, 
           success: function (data) { 
            $("#flash").hide(); 
             $('#info').html(data.objective); 
             $('.success').fadeIn(200).show(); 
            $("#objective").focus(); 
           } 
          }); 
          return false; 

        } 
      }); 

    }); 
</script> 

HTML

<form class="form-horizontal " name="myform" id="myform" action="include/process.php" method="post"> 


      <div class="form-group"> 
      <label for="objective" class="col-lg-3 control-label">Objective</label> 
      <div class="col-lg-9"> 
       <textarea class="form-control" rows="6" id="objective" name="objective" placeholder="Objective" ></textarea> 
       </div> 
      </div> 
      <div class="form-group"> 
      <div class="col-lg-12"> 
       <button type="submit" id="editbtn" class="btn btn-sm btn-success pull-right hovertip" data-toggle="tooltip" data-original-title=" Add ">Add Data</button> 
       </div> 
      </div> 

     </form> 

有三个类似形式在同一页上...

+0

对不起,确切的问题是什么? –

+0

@atjoshi,请说明你面临的问题是3种形式。使用#myForm应限制您的上述呼叫仅限于您正在使用的表格,除非您对多个表单使用相同的ID等。 –

+0

所有表单都有其不同的ID ...因此,本演示表单提交了一个一个时间... – atjoshi

回答

2

在您的点击处理程序的开始处添加e.preventDefault

$("#editbtn").click(function (e) { 
    e.preventDefault(); 
    // rest of the code. 
} 

它会阻止您的表单发送,而无需通过您的js代码。

+0

它的工作,但第二次点击..第一次点击是附加validtor形式和第二次点击正在验证相同..功能第二次点击。 – atjoshi

0

你可以做什么@Romain说或更改HTML到:

<input type="button" id="editbtn" class="btn btn-sm btn-success pull-right hovertip" data-toggle="tooltip" data-original-title=" Add " value="Add Data" /> 

所以,形式不一样,如果要触发通过JavaScript提交提交

+0

现在它完全提交 – atjoshi

+0

@atjoshi是的,你可以添加'$(“#myform”)。submit();'当需要时提交表单 – gonzalon

+0

我已经编辑了修改并完全删除了cick事件,只是使用submitHnadler ..它的工作很好,但..编辑按钮来填充输入文本不工作在第二clcick .. anyidea – atjoshi

0

,那么你可以键入按钮为“按钮”,而不是提交:

<button type="button" id="editbtn" class="btn btn-sm btn-success pull-right hovertip" data-toggle="tooltip" data-original-title=" Add ">Add Data</button> 

这将防止默认从执行提交操作,让你处理通过您的onclick方法的一切。