我想提交一份表格,但在检查了一些价值之后

时间:2015-01-23 14:57:30

标签: jquery html forms

我想提交表单,但在我继续之前检查了一些值匹配之后。理想情况下,我想在提交代码之前检查id总计等于id:批准和不批准,此时此操作无效

<form id="sheet" method="post" action=".application.php" >
<table>
    <tr>
    <td>
        <label>Total</label>
    </td>
    <td>
        <input id = " Total" name="Total" type="text" size="20" />
    </td>
 </tr>

 <tr>
    <td>
        <label>Approved :</label>
    </td>
    <td>
        <input id="Approved" name="Approved" type="text" size="20" />
     </td>
 </tr>
 <tr>
    <td>
        <label>Not Approved:</label>
    </td>
    <td>
        <input id="Not" class="control" name="NotApproved" type="text"    size="20" />
    </td>
 </tr>
 </table>
<button id="submit"  name="submit" type="submit"   onclick="Checker();">POST</button>
</form>

<script>
 $(document).ready(function(){

 $('form').submit(function() {

    if ($('#Total').val() !==  $('#Approved').val() + $('#Not').val()) {
    alert('check your values');
      return false;  
    }else{
        return true;
    }

    });
 }); 

2 个答案:

答案 0 :(得分:0)

您必须将值转换为&#34;数字&#34;,您目前正在将stringstring + string进行比较。

看到它正常工作here

var total = Number( $("#total").val() ),
    approved = Number( $("#Approved").val() ),
    notApproved = Number( $("#Not").val() );

if ( total !== (approved + notApproved) ) {
  return false;
}

答案 1 :(得分:-1)

您的代码的另一个问题是您正在使用此代码:

$('form').submit(...);

您正在选择dom中的所有表单,因此如果有其他表单,则相同的验证将适用于所有提交的表单。

也许你想通过id选择你的表格,在你的情况下会是这样的:

$('#sheet').submit();

使用代码检查验证后如何对表单进行求和的示例如下:

$(document).ready(function(){
    $('#sheet').submit(function(e){
        e.preventDefault();
        var total = Number ($("#Total").val()),
            approved = Number ($("#Approved").val()),
            notApproved = Number ($("#Not").val());
        if(total != (approved + notApproved)){
          return false;
        }else{
          return true;
        }
    });
});