在jquery中提交表单之前检查条件

时间:2017-04-23 13:24:09

标签: javascript php jquery forms

我提交的frm基本上是购买发票。在提交表单之前,我想实施检查,用户不会在文本框中输入超过总账单的金额。例如,如果总账单是300,并且在“付款金额”文本框中,用户意外输入3000,那么它应该在这里显示错误信息是我的代码:

$("#mainform").submit(function() {
var total = $("#gtotal").val();
var paid  = $("#paid").val();
alert(paid);
alert(total);
if(paid > total)
{ 

alert("Amount can't be greater than total");

return false;
}
return true;

});

当我提醒付费和总金额时,他们会显示正确的值,但如果条件未满足,if条件有时无法提交表格,有时甚至不满足条件

4 个答案:

答案 0 :(得分:1)

试试这个,它可能有效:

var total = parseInt($("#gtotal").val());
var paid  = parseInt($("#paid").val());

答案 1 :(得分:1)

.val()返回字符串

使用 parseFloat 将付费和总计转换为浮动,使用 isNaN 进行检查,然后进行比较。像这样:

paid = parseFloat(paid);
total = parseFloat(total);
if (!isNaN(paid) && !isNaN(total)) {
    if (paid > total) {
       ...

如果您不使用小数,则可以使用 parseInt

答案 2 :(得分:1)

在提交函数上添加一个参数,并调用preventDefault方法以避免提交表单。

.submit(function(event) {
   ...
if (paid > total) {
   ...
   event.preventDefault();
}

答案 3 :(得分:1)

错过了一些条件:

  • 空输入字段
  • 不是数字

为了将字符串转换为数字,您可以在字符串前加上加号。

解决方案可能是:

$("#mainform").on('submit', function(e) {
    var total = +$("#gtotal").val();
    var paid  = +$("#paid").val();
    if (($("#gtotal").val().trim().length == 0) || isNaN(total)) {
        console.log("Please specify total");
        $("#gtotal").focus();
        e.preventDefault();
        //
        // stop function execution....
        //
        return;
    }
    if (($("#paid").val().trim().length == 0) || isNaN(paid)) {
        console.log("Please specify paid");
        $("#paid").focus();
        e.preventDefault();
         //
        // stop function execution....
        //
        return;
    }
    if(paid > total) {
        console.log("Amount can't be greater than total");
        //
        // prevent the submit action
        //
        re.preventDefault();
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<form id="mainform" action="http://www.google.com">
    gtotal: <input id="gtotal" type="text">
    paid:<input id="paid" type="text">
    <input type="submit" value="Submit Form">
</form>