2014-12-04 48 views
1

我想我的网站上的第一件事是要求输入密码的对话框,如果密码长度小于6,称为密码错误的跨度显示,并且您不被允许继续。如果密码长度大于或等于6,则可以按确定并继续。我的问题是没有任何显示,并且无论密码的长度是多少,我都无法继续。这里是我的代码:莫代尔将不会关闭使用确定按钮

<div class="password_insert" title="Set your password"> 
    <span id="error"><b>Passwords error!</b></span> 
    <span>New Password: </span> 
    <br /> 
    <input type="password" id="ins_pass" /> <span>Repeat Password: </span> 
    <br /> 
    <input type="password" id="rep_pass" /> 
</div> 

<script> 
$(function() { 
    $(".password_insert").dialog({ 
     modal: true, 
     buttons: { 
      Ok: function() { 
       $(this).dialog("close"); 
      } 
     }, 
     beforeClose: function (event, ui) { 
      var x = $('#ins_pass').val(); 
      var y = x.length(); 
      if (x < 6) { 
       $("#error").show(); 
       event.preventDefault(); 
      } 
     } 
    }); 
}); 
</script> 

Demo

+0

控制台错误? jQuery加载正确吗? – isherwood 2014-12-04 21:31:15

+0

偏题:你的'
'标签格式不正确。 – isherwood 2014-12-04 21:32:08

+0

我的意思是对话框显示,但没有任何反应,当我按下确定,无论输入密码的长度是多少。另外:跨度隐藏在开头,但我没有把风格标签放在我的问题:)。 – mouseepaad 2014-12-04 21:32:28

回答

1

浏览器控制台报告以下错误:

Uncaught TypeError: number is not a function 

您使用的是length方法不正确:

var y = x.length(); 

var y = x.length; 

Demo

另外,题外话:使用标签for属性,而不是span标签的可访问性。

+0

小提琴更新为隐藏错误负载。 – isherwood 2014-12-04 21:37:34

+0

好的,我修好了。非常感谢你的回答:),你太棒了! :) – mouseepaad 2014-12-04 21:39:21