问:我正在尝试通过添加更多密码验证(例如,包括数字,大写字母和特殊字符)在jQuery密码项目的基础上构建项目。但是,我一开始就使用.charAt()函数错误说“它不是函数”而陷入困境。请帮助我解决此问题。先感谢您。
//问题:即使表单有效,也会显示提示
//解决方案:在适当的时间隐藏并显示它们
var $ password = $ (“ #password” );
var $ chPassword = '' ;
var $ confirmPassword = $ (“ #confirm_password” );
var $ username = $ (“ #usename” );
//隐藏提示$ (“ form span” )。隐藏(); 函数isPasswordValid (){ //如果($ password.val()。length> 8)// {
为 (VAR 我 = 0 ; 我 < $密码。VAL ()。长度; 我 + = 1 )
{ $ chPassword = $密码。charAt (i ); 控制台。日志($ chPassword ); } //}返回$ password 。val ()。长度> 8 ; //检查密码的长度。}函数isUsernameFilled (){
如果 ($用户名。VAL 。()长度 > 0 ) 被输入//检查用户名
{返回真; } else {返回false ; } }函数arePasswordsMatching (){返回$ password 。val ()=== $ confirmPassword 。val (); }函数canSubmit (){ //如果有有效的匹配密码和输入的用户名,则传递true。返回
isPasswordValid () && arePasswordsMatching () && isUsernameFilled ;
}
function passwordEvent (){ //找出密码是否有效 if (isPasswordValid ()){ //隐藏提示是否有效$ password 。下一个()。隐藏(); // id = password中的下一个元素(跨度)并隐藏} else { //否则显示提示$ password 。下一个()。显示(); // ID =密码中的下一个元素(跨度)并显示} }
function confirmPasswordEvent () {
//查找密码和确认是否匹配if (arePasswordsMatching ()){ //隐藏提示是否匹配$ confirmPassword 。下一个()。隐藏(); // id中的下一个元素(跨度)= confirmpassword并隐藏} else { //否则显示提示$ confirmPassword 。下一个()。显示(); // id中的下一个元素(跨度)= Confirmpassword并显示} }函数enableSubmitEvent (){ $ (
“ #submit” )。prop (“ disabled” , !canSubmit ()); //如果可以提交,则为true启用提交,否则禁用它
}
//当密码输入$ password发生事件时。焦点(passwordEvent )。keyup (passwordEvent )。keyup (confirmPasswordEvent )。keyup (enableSubmitEvent ); //当用户将第一个光标放置在password字段中时,它将启动passwordEvent,当开始键入passwordEvent时,confirmPasswordEvent,enableSubmitEven start //当事件发生在确认输入时
$ confirmPassword 。焦点(confirmPasswordEvent )。keyup (confirmPasswordEvent )。keyup (enableSubmitEvent );
//当用户将第一个光标放在确认密码字段中时,它将启动confirmPasswordEvent,当开始键入confirmPasswordEvent和enableSubmitEven时,则启动
enableSubmitEvent ();
答:您当前的代码正在检查具有密码ID的输入值,而不是输入中输入的值。
试试这个。
为 (VAR 我 = 0 ; 我 < $密码。VAL ()。长度; 我 + = 1 ) {
$ chPassword = $密码。val ()。charAt (i ); 控制台。日志($ chPassword ); }
我希望这有帮助。