ajax验证不在表单提交中工作

时间:2016-03-30 09:30:17

标签: php codeigniter

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

我想如果收到无效邮件,那么表单不应该提交,我该怎么做?

<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>

3 个答案:

答案 0 :(得分:0)

<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>

答案 1 :(得分:0)

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

如果您在 POST之前尝试验证,则需要单独添加。根据您需要的验证类型,您可以编写自己的简单测试,或使用插件 - jQuery Validation是一个很好的选择。

答案 2 :(得分:0)

在页脚文件中添加

<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>