如何在单个字段中使用多个远程URL验证

时间:2015-04-24 07:51:48

标签: php jquery

我想在同一个字段上使用远程网址检查两个条件,但无法执行此操作。

这里的第一个条件是检查来自数据库的相同电子邮件ID以及用户无法输入具有相同域的电子邮件ID。例如,如果有人输入demo@gmail.com,那么首先它将检查相同的电子邮件ID不应该在数据库中,如果没有,则应检查数据库中没有其他电子邮件ID应该将gmail作为域名。

我的代码如下所示

<script>
$(function(){
    $("#registration").validate({
        rules: {
            usr_email: {
                required:true,
                email:true,
                remote:"registration.php?fn=check_email&usr_email=usr_email"
            },
            usr_pass: {
                required:true,
                minlength:5
            },
            usr_confirm_pass: {
                required:true,
                minlength:5,
                equalTo: "#usr_pass"
            }                   
        },
         messages: {

     usr_email: {
            required: "Cannot be left Blank !",
            email: "Invalid Email !",
            remote: "This Email cant be used. Plz Try Another one!!!"
     },
      usr_pass: {
            required: "Cannot be left Blank !",
            minlength: "Password must be 5 character long"
     },
     usr_confirm_pass: {
            required: "Cannot be left Blank !",
            minlength: "Password must be 5 character long",
            equalTo: "Passwords do not Match !"
        }
   }

    });

});

</script>

2 个答案:

答案 0 :(得分:1)

根据文档,如果从服务器发回true,该字段将通过验证。如果您发回一个字符串,该字段将失败验证,该字符串将成为您的错误消息。无需多次发送相同的数据。

换句话说,执行该远程函数中的所有检查,如果失败则返回正确的错误消息。如果你需要帮助,你需要提供它。

Documentation

好的,请尝试回复此错误消息(使用extraquotes):

echo '"Error message 1"';

并尝试回应单词&#34; true&#34;为正确,或为空白字符串表示正确:

echo "true";
echo ""; //try one of these rows

然后在您的Javascript代码的后半部分中删除remote:错误消息

答案 1 :(得分:0)

<?php

function check_email()
{
    $usr_email=$_REQUEST["usr_email"];

    if($usr_email=='raj@raj.com')
    {
        echo "Error message 1";
    }
    else if($usr_email=='raj1@raj.com')
    {
        echo "Error message 2";
    }
    else
    {
        echo true;
    }
}

?>