ajax验证在表单提交中不起作用


ajax validation not working in form submit

我在URL字段中使用ajax验证,我得到了正确的消息(在从数据库进行检查后),但表单仍在提交

我想如果我收到一条无效消息,那么表单就不应该提交,我该怎么做?

<script>
    $(document).ready(function(){
        $("#Url").blur(function() {
            var element = $(this).val();
            $.ajax
            ({
                url: "<?php echo site_url('Welcome/check_user_status'); ?>",
                type: 'POST',
                data: "url="+element,
                success: function(data){
                    alert(data);
                    $('#emailInfo').html(data);
                    if(jQuery.trim(data) === "Emailvalid")
                    {
                        alert("Emailvalid");
                    }
                    else
                    {
                        alert("Email Invalid");
                    }
                    console.log(data);
                }
            });
        });
        // return false;
    });
</script>
<form name="myForm" id="myForm"> 

<script>
    $(document).ready(function(){
        $("#Url").blur(function() {
            var element = $(this).val();
            $.ajax
            ({
                url: "<?php echo site_url('Welcome/check_user_status'); ?>",
                type: 'POST',
                data: "url="+element,
                success: function(data){
                    alert(data);
                    $('#emailInfo').html(data);
                    if(jQuery.trim(data) === "Emailvalid")
                    {
                        alert("Emailvalid");
                    }
                    else
                    {
                        alert("Email Invalid");
                    $("form").submit(function(e){
                       e.preventDefault();
                     }); 
                    }
                    console.log(data);
                }
            });
        });
        // return false;
    });
</script>

您的测试被放置在成功回调中,该回调在$.ajax()调用成功发布数据并收到响应后被触发。无论你在那里放了什么,只有在表格提交后,才会发生

如果您试图在POST前进行验证,则需要单独添加验证。根据您需要的验证类型,您可以编写自己的简单测试,或者使用插件-jQueryValidation是一个不错的选择。

将其添加到页脚文件中

<script>
var burl="<?php echo base_url('') ?>";
var surl="<?php echo site_url('') ?>";
</script>

然后在ajax url上使用这个surl。。。像这个

<script>
    $(document).ready(function(){
        $("#Url").blur(function(e) { // add e
            e.preventDefault();// prevent other events
            var element = $(this).val();
            $.ajax
            ({
                url: surl+"Welcome/check_user_status",
                type: 'POST',
                data: {"url":element}, // check the change
                success: function(data){
                    if($.trim(data) === "Emailvalid"){ // instead of jQuery use $
                        alert("Emailvalid");
                        $('#emailInfo').html(data); // put here 
                    }else{ // remove the space between if and else
                        alert("Email Invalid");
                        return false; // add here 
                    }
                    console.log(data);
                }
            });
        });
    });
</script>