[英]Using jQuery for user registration form validation
我正在尝试创建一个学习/运动的网站,但我坚持用户注册验证。 没有错误消息,没有任何反应。
这是一个JsFiddle链接 。
我也尝试过:
if(user_name.length < 3 && user_name!=="")
和
if(user_name.length < 3)
代码段:
var user_name = $('#username').val(); $('#username').on('keyup',function(){ if(user_name.length < 3 && user_name!=""){ $('#username-info').html('Username must be at least 3 characters.'); } else if(user_name.length > 3){ $('#username_info').html('No problem'); } });
#username-info { color: red; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="text" id="username"> <p id="username-info"></p>
目前, user_name
在脚本开头声明一次,因此永远不会更新。
然后,您在<p#username-info>
上附加了一个keyup
事件处理程序,而不是<input#username>
,因此当您输入内容时,不会触发任何内容。
因此,您需要将每个输入的user_name
更新为<input#username>
。
// Here, you need to attach the event handler of #username, not #username-info. $('#username').on('keyup', function() { // And here, you get the value of your input. let user_name = $('#username').val(); // let user_name = $(this).val(); works too. // Writing "(user_name)" in a condition is the same as "(user_name !== '')". if (user_name && user_name.length < 3) { $('#username-info').html('Username must be at least 3 characters.'); } else if (user_name.length >= 3) { // You wrote "#username_info" instead of "#username-info" here. $('#username-info').html('No problem'); } });
#username-info { color: red; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="text" id="username"> <p id="username-info"> </p>
我认为你刚刚输入错误的ID并且你的变量user_name
仅在启动时初始化一次,因此它的值始终为空。
$('#username').on('keyup', function() { var user_name = $(this).val(); if (user_name.length < 3 && user_name != "") { $('#username-info').html('Username must be at least 3 characters.'); } else if (user_name.length > 3) { $('#username-info').html('No problem'); } });
#username-info { color: red; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="text" id="username"> <p id="username-info"> </p>
你的脚本中有很多拼写错误,你在键盘上查找段落而不是输入字段。
var user_name = "";
$('#username').on('keyup',function(){
user_name = $('#username').val();
if(user_name.length <= 3 && user_name!=""){
$('#username-info').html('Username must be at least 3 characters.');
}
else if(user_name.length > 3){
$('#username-info').html('No problem');
}
});
keyup
功能需要在输入字段上触发。
keyup
函数更新username
(否则它将是相同的)。
$('#username').on('keyup',function(){
var user_name = $('#username').val();
if(user_name.length < 3 && user_name!=""){
$('#username-info').html('Username must be at least 3 characters.');
}
else if(user_name.length >= 3){
$('#username-info').html('No problem');
}
});
我使用您的代码作为参考,并对其进行了一些更改以获得更好的输出。
你可以试试这个,我在这里也改变颜色代码以及错误信息,这样你就会得到更好的结果。
$('#username').on('keyup',function(){ var user_name = $('#username').val(); if(user_name.length < 3 && user_name != ""){ $('#username-info').html('Username must be at least 3 characters.'); $('#username-info').addClass('username-info'); $('#username-info').removeClass('username-info-2'); } else if(user_name.length >= 3){ $('#username-info').html('No problem'); $('#username-info').addClass('username-info-2'); $('#username-info').removeClass('username-info'); } });
.username-info { color: red; } .username-info-2 { color: blue; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="text" id="username"> <p id="username-info"></p>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.