如何解决我想在输入内容后返回输入的给定值
|| 由于某种原因,在输入内容后,我无法弄清楚如何返回输入值。这与该问题有关,如果不识别用户名值,我将无法进行任何验证。我正在运行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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。