我想在输入内容后返回输入的给定值

问题描述

|| 由于某种原因,在输入内容后,我无法弄清楚如何返回输入值。这与该问题有关,如果不识别用户名值,我将无法进行任何验证。我正在运行jQuery 1.6.1和Validate 1.8.1。 这是HTML形式:
<form class=\"cmxform\" action=\"register.PHP\" method=\"post\" name=\"signup\" id=\"signup\">
   <ul>
      <li>
        <label for=\"username\">Username: <em>*</em></label>
        <input type=\"text\" id=\"username\" name=\"Username\" size=\"20\" class=\"required\" placeholder=\"Username\" />
      </li>
   </ul>
</form>
提交表单之前,我想确保我可以看到输入到输入中的用户名的值。我有一个警报,返回用户名的值,但警报始终不显示任何内容。这是我正在使用的JS代码
$(document).ready(function(){

var username = $(\"#username\").val();
var parameter = \"action=checkusername&username=\"+username;

$.validator.addMethod(\"checkAvailability\",function(value,element){
    $.ajax({
          url: \"dbquery.PHP\",type: \"POST\",async: false,data: parameter,success: function(output) {
                     alert (username);
                     return true;
         }
     });
},\"Sorry,this user name is not available\");

// jQuery Validation script
    $(\"#signup\").validate( {
        rules: {
            Username: {
                required: true,minlength: 5,checkAvailability: true // remote check for duplicate username
                }
            }
        },messages: {
            Username: {
                required: \"Enter a username\"
            }
        },submitHandler: function(form) {
            form.submit();
        }
    });
我是否应该使用
val()
以外的方式来获取用户名的值?我很困惑为什么没有给我所需的价值!     

解决方法

        您是在JavaScript开头硬编码用户名。在addMethod成功调用内完成
$.validator.addMethod(\"checkAvailability\",function(value,element){
  var nameAvailable = false;
  $.ajax({
      url: \"dbquery.php\",type: \"POST\",async: false,data: \"action=checkusername&username=\"+value,success: function(output) {
        //server returns whether username is valid or not
        //if it is valid set nameAvailable to true like so:
        nameAvailable = true;
      }
  });

  return nameAvailable;

});

$(\"#signup\").validate({
  username: {
    required: true,checkAvailability: true
  },messages: {
    username: {
      required: \"Username is required\",checkAvailability: \"Sorry,this user name is not available\"
    }
  },submitHandler: function(form) {
    form.submit();
  }
});
的HTML
<input type=\"text\" id=\"username\" name=\"username\" size=\"20\" class=\"required checkAvailability\" placeholder=\"Username\" />
现在将其放置在您拥有的位置意味着,当页面加载时,它将立即在用户名文本字段中获取值,该值将为空。 编辑: 稍微修改了代码以使其正常工作 编辑:以上代码的jsfiddle     ,        $ .val()在
<input>s
上可以使用。 给我们一个链接?也许我们可以在那里看到它? 另外,如果id确实是用户名而不是一致,则\“ for \”属性应该是用户名。 并且由于您要给$ .ajax一个已经字符串化的字符串,因此请尝试同时添加processData:false