2013-10-22 155 views
1

我想添加一些功能,以一系列的窗体来验证两个复选框。我正在使用jQuery验证插件,而且我的生活无法正常工作。在我提交它时,我只是收到了403条禁止的消息。在我的实际网站上,它看起来像它从未执行过。jQuery验证插件多种形式

HTML - 这些表单是多个且每页相同的。计算器只让我展示一个虽然

<form method="post" id="offer" name="offer" action="#" class="offer"> 
    <input type="text" name="original_description"> 
    <input type="text" name="description"> 
    <input type="text" name="added_by"> 
    <input type="submit" id="add" value="add" class="submit"> 
</form> 

JS

$(".offer").each(function() { 
    $(this).validate({ 
     submitHandler: function (form) { 
      var x = form.find('input[name=description]').val(); 
      var y = form.find('input[name=original_description]').val(); 
      var z = similar_text(x, y, 1); 
      alert("Description: " + x + " original_description: " + y + " z: " + z) 
      if (z > 50 && !isNaN(z)) { 
       alert("Description too similar to original. Please make it less similar"); 
       return false; 
      } 
      form.submit(); 
     }, 
     rules: { 
      added_by: { 
       required: true 
      } 
     }, 
     messages: { 
      added_by: { 
       required: 'Please select your name' 
      } 
     } 
    }); 
}); 
+0

link to fiddle? – Stphane

+0

http://jsfiddle.net/PzKC4/47/ – KingFu

+0

有一个错字,阻止您的脚本被执行。在“规则”之前,缺少','来分隔属性 – jbl

回答

2

正如评论所说,你应该在“” rules:前添加,并在你的submitHandler操纵一个jQuery表单对象,像这样:

$(".offer").each(function() { 
    $(this).validate({ 
     submitHandler: function (form) { 
      var x = $(form).find('input[name=description]').val(); 
      var y = $(form).find('input[name=original_description]').val(); 
      var z = similar_text(x, y, 1); 
      alert("Description: " + x + " original_description: " + y + " z: " + z) 
      if (z > 50 && !isNaN(z)) { 
       alert("Description too similar to original. Please make it less similar"); 
       return false; 
      } 
      form.submit(); 
     }, 
     rules: { 
      added_by: { 
       required: true 
      } 
     }, 
     messages: { 
      added_by: { 
       required: 'Please select your name' 
      } 
     } 
    }); 
});