【问题标题】:Using the jQuery validate plugin with the "remote" option使用带有“远程”选项的 jQuery 验证插件
【发布时间】:2011-10-09 23:19:53
【问题描述】:

我正在使用 jQuery 验证插件及其远程选项来检查输入字段中的用户名是否存在。我使用此代码:

 remote : {
      url :'ajax_php/admin/checking.php',
      type   :'post',
      data   : {
      type:'username'   
}}

我注意到请求 URL 附加了一个回调参数,即使我将类型请求设置为 post:

http://localhost/lopoli2/ajax_php/admin/checking.php?callback=jQuery15104128487491980195_1311232389069

我的 PHP 脚本运行良好,并为有效用户名返回 true,为无效用户名返回一个字符串。但是没有出现错误信息!简而言之,我的 PHP 文件如下所示:

$check = mysql_query("select `username` from `user_tbl` where `username`='".$_POST['username']."' ",$conn) 
or die('Error In DB !');

if (mysql_num_rows($check)>0){
    echo("username is already exists");
}else{
    echo("true");
}

这是我想知道的:

  • 回调参数有什么用?
  • 如何解决“显示错误信息”的问题?

【问题讨论】:

    标签: php javascript jquery validation plugins


    【解决方案1】:

    尝试改变:

    echo("username is already exists");
    

    echo("false");
    

    【讨论】:

      【解决方案2】:

      我认为你必须在你的 php 脚本中返回 true 或 false。然后,您可以使用选项对象中的 messages 参数使用自定义错误消息来设置错误消息。

      另外我认为您的数据参数配置错误。在文档中看起来像这样。虽然,你提到它有效,所以也许不同的版本? (http://docs.jquery.com/Plugins/Validation/Methods/remote#options)

      remote: {
          url: 'ajax_php/admin/checking.php',,
          type: "post",
          data: {
              username: function() {
                  return $("#username").val();
              }
          }
      }
      

      然后在您的 php 脚本中返回 'true' 或 'false'。您可以使用 jquery validate 插件设置错误消息

      $check = mysql_query("select `username` from `user_tbl` where `username`='".$_POST['username']."' ",$conn) 
      or die('Error In DB !');
      
      if (mysql_num_rows($check)>0){
          echo 'false';
      }else{
          echo "true";
      }
      

      这是添加消息参数的方法 (http://docs.jquery.com/Plugins/Validation/validate#options)

      $(".selector").validate({
         rules: yourRules,
         messages: {
           username: {
             remote: "Username already exists"
           }
         }
      })
      

      【讨论】:

        【解决方案3】:

        返回的值被认为是布尔值(真/假)或字符串(将被处理为假并显示返回的文本)。

        此外,使用 header('content-type:text/plain'); 将输出设置为 text/javascript 或 text/plain 也很重要;

        所以在php中,在返回值的时候,要注意返回值的类型如下:

        回显“真”; //=> true,布尔值。 表示验证结果为真,一切正常。

        回显'假'; //=> false,布尔值。 表示验证结果错误并显示验证器对象中配置的消息

        echo '"假"'; //=> "false",一个字符串。 表示验证结果错误并显示返回的字符串会显示为错误。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-10-23
          • 1970-01-01
          • 1970-01-01
          • 2012-04-30
          • 1970-01-01
          • 2014-03-05
          相关资源
          最近更新 更多