如果验证函数返回true,如何通过ajax提交表单

时间:2017-07-19 11:29:15

标签: php jquery html ajax

我的页面中有一个表单。 onsubmit我有一个验证功能。我需要只有在验证函数返回true时才通过ajax发送form的值。 但即使验证返回false,我的数据也会被提交。请帮帮我。 这是我的代码

形式

<form id="form" method="post" onsubmit="return val()">
 <input type="text" name="name" id="t1" placeholder="name" class="i">
 <span id="msg1"></span><br>
 <input type="number" name="roll" id="t2" placeholder="roll no" min="0" class="i">
 <span id="msg2"></span><br>
 <input type="number" name="age" id="t3" placeholder="age" min="0" class="i">
 <span id="msg3"></span><br>
 <input type="submit" name="submit" id="submit" value="submit">                                  
</form>

val函数

function val()
    {
        var status=true;
        var name=$("#t1").val();
        var age=$("#t2").val();
        var roll=$("#t3").val();
        if(name=="")
        {
            $("#msg1").text("*name cannot be empty");
            status=false;

        }
        if(roll=="")
        {
            $("#msg2").text("*roll number cannot be empty");
            status=false;
        }
        if(age=="")
        {
            $("#msg3").text("*age cannot be empty");
            status=false;
        }
    return status;

    }

仅当val()返回true

时才需要工作的函数
$("form").submit(function(e){

            e.preventDefault();

        $.ajax({
            type:"post",
            url:"<?php echo base_url() ?>"+"att_controller/add_stud",
            data: $("#form").serialize(),
            success: function(){
                if(confirm("added")){
                   $(".i").val(""); 
                }

            }

        })
    })

1 个答案:

答案 0 :(得分:1)

摆脱内联提交处理程序并在不显眼的事件处理程序中使用val()方法。

$("#form").submit(function (e) {
    e.preventDefault();
    if (val()) {
        $.ajax(....)
    }
});