我想提交表单,但在我继续之前检查了一些值匹配之后。理想情况下,我想在提交代码之前检查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;
}
});
});
答案 0 :(得分:0)
您必须将值转换为&#34;数字&#34;,您目前正在将string
与string
+ 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;
}
});
});