在jquery验证中使用远程方法的问题

时间:2013-04-25 11:36:32

标签: javascript jquery ajax validation jquery-validate

我正在关注this文章以验证我的表单

我的问题是我必须使用remote方法,例如remote: "check-username.php"

由于远程方法的documentation对我来说不是那么清楚,我会知道:

我需要如何在php脚本中构建我的json输出?

2 个答案:

答案 0 :(得分:15)

要使用remote的默认方法,远程页面必须使用字符串值"true""false"进行回复。

有效成功)必须是:

echo "true";

无效失败):

echo "false"; // this can be any false. eg: 0 , "" , NULL.

响应将被评估为JSON。

要应用无效远程响应(“false”)的默认值以外的错误消息,请将输入名称添加到验证器选项messages对象中。

rules:{
    username:{
        remote: "check-username.php"
    }
},   
messages:{
    username:{
        remote: jQuery.format('{0} is already in use, please choose a different name')
    }
}

答案 1 :(得分:1)

您不需要JSON。你可以放任何文字。例如,你可以

echo "success";

用于传递验证,并输入验证消息,如:

echo "Username already exists.";

验证失败。

在你的回调中做这样的事情:

remote: {
           url: "check-username.php" ,
           type: "post" ,
           data: {
              username: function() {
              return $("#username").val();
           },
           complete: function(data){
                if( data.responseText != "success" ) {
                   alert(data.responseText);
                   //handle failed validation
                }
             }
         }