2014-10-16 53 views
1

我有一个简单的表单,有一个复选框和3个提交按钮。只有当三个按钮中的一个被点击时,复选框字段才需要打勾。下面是该表单的HTML:有多个提交按钮的条件表单验证

<form role="form" action="udpate.php" id="review" method="post"> 

<div class="checkbox"> 
<label class="checkbox"> 
<input type="checkbox" name="approved" value="approved"> 
</label> 
</div> 

<p>I have approved all changes and are happy to proceed</p> 

<button type="submit" class="btn btn-default" name="buttonType" id="Reject" value="Reject">Reject</button> 
<button type="submit" class="btn btn-default" name="buttonType" id="Pending" value="Pending">Pending</button> 
<button type="submit" class="btn btn-default" name="buttonType" id="Approve" value="Approve">Approve</button> 
</form> 

下面是一个使用jQuery的验证插件脚本:

<script> 
    $().ready(function() { 
     $("#Approve").click(function() { 
      $("#review").validate(); 

     }); 
    }); 
</script> 

目前点击任意3个按键的执行验证,但我也只需要验证用户是否单击批准按钮。只有此时需要勾选复选框,否则如果可以留空。

是否有可能进行某种验证,检查点击了哪个按钮,然后在继续之前检查该复选框是否为空,如果该按钮已被点击?

+0

你可以分享你与完成代码? – Mayank 2014-10-16 12:59:01

+0

@Mayank我只是添加了一些更多的细节,包括JQuery验证代码,当点击3个按钮中的任何一个时,它正在运行 – user982124 2014-10-16 13:02:33

回答

2

添加一个ID,形成和复选框,例如: “Form1的”, “checkbox1”

<form id="form1" ...> 
    <input type="checkbox" id="checkbox1" ... /> 
    ... 
</form> 

然后jQuery的添加到当前代码:

$('#form1 button[type="submit"]').click(function(e){ 
    e.preventDefault();        // this for prevent form from submit 

    if($(this).val() == "Approve"){     // check if third button was clicked 
     if($('#form1 #checkbox1').is(':checked')){ // check if checkbox is checked 
      $('#form1').submit();     // submit form 
     }else{ 
      // here paste your info code, that checkbox is not checked 
     } 
    }else{           // any other button 
     $('#form1').submit(); 
    } 
});