Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript未验证表单中的密码_Javascript_Html_Ruby On Rails_Validation - Fatal编程技术网

Javascript未验证表单中的密码

Javascript未验证表单中的密码,javascript,html,ruby-on-rails,validation,Javascript,Html,Ruby On Rails,Validation,您好,我在网上四处看看,我知道有人问过类似的问题,但是,我无法找到解决我问题的合适方法。我需要对这段代码进行密码验证,问题是我没有直接使用字段,因此我无法理解如何实现JS 这是HTML(它是使用RubyonRails实现的,这是我所能看到的所有“HTML”方面(下面是fiddle中的完整代码)) 联系方式 密码长度必须至少为6个字符,并且应包含小写字母、大写字母和数字的混合体。确认密码必须与密码匹配。 密码 确认密码 出生日期 我曾尝试实现一些JS(但由于不熟悉该语言,我无法使其正常工作,

您好,我在网上四处看看,我知道有人问过类似的问题,但是,我无法找到解决我问题的合适方法。我需要对这段代码进行密码验证,问题是我没有直接使用
字段,因此我无法理解如何实现JS

这是HTML(它是使用RubyonRails实现的,这是我所能看到的所有“HTML”方面(下面是fiddle中的完整代码))


联系方式
密码长度必须至少为6个字符,并且应包含小写字母、大写字母和数字的混合体。
确认密码必须与密码匹配。 密码 确认密码 出生日期

我曾尝试实现一些JS(但由于不熟悉该语言,我无法使其正常工作,但我尝试了以下方法:

<script type="text/javascript">
  function validate_form()
  {
  var passw = document.getElementById('password1').value;
  if(passw.value.length < 6 ) {
    alert("Error: Password must contain at least six characters!");
    form.password.focus();
    return false;
  }
  return true;
  }
</script>

函数validate_form()
{
var passw=document.getElementById('password1')。值;
if(passw.value.length<6){
警报(“错误:密码必须至少包含六个字符!”);
form.password.focus();
返回false;
}
返回true;
}
所以我希望如果它是空的,如果它小于6个字符,如果它不包含大写字母和数字,它会验证并引发一条消息。虽然我知道我在代码中没有引入后者,但我甚至无法获得 更新:

password1
id不是密码字段的id
我刚刚检查了你的链接,它给出了错误
passw在控制台中未定义
,你的密码字段id是
password-input-0
,所以使用

var passw = document.getElementById('password-input-0').value;
不要使用
if(passw.value.length<6)
使用
if(passw.length<6)
您已经有了密码值,只需检查大小即可。
此外,您的文本字段名称错误。“Password1”是td名称而不是密码文本字段。请检查并更正。

如果(passw.length<5)//这里应该是5
if(passw.length < 5 ) //here should be 5

当您单击按钮时,页面将刷新:您不需要调用
e.preventDefault();
我认为您应该侦听“提交”事件。在“侦听”功能中,您可以验证输入的长度并阻止其默认行为。

我刚刚在live网站上尝试过它(目前已禁用所有其他验证)它什么也没做。我已经键入了你的修复程序,当我单击“注册”时,页面会刷新,但没有验证?你介意看一看吗?如果没有,你还有其他想法吗?谢谢,你怎么知道这是字段的名称?如果我想检查密码是否与第二个密码框匹配,因为两个字段似乎都称为password,第二个密码是:
password-input-1
?非常感谢,我想我几乎可以解决这个问题,你真的保存了我的###!是的
password-input-1
第二个密码,我用firebug检查了你的dom。再次感谢你(我只是想确保它在我接受之前工作正常:).我欠你一品脱最好的麦酒!再次谢谢你,先生!我刚刚在live网站上试用过(目前已禁用所有其他验证)它什么也没做。我已经键入了你的修复程序,当我单击“注册”时,页面会刷新,但没有验证?你介意看一看吗?如果没有,你还有其他想法吗?谢谢你的文本字段名称是错误的。“Password1”是td名称而不是密码文本字段。请检查并更正。谢谢回复。从我看到的情况来看,文本字段I但是我是否需要将js函数改为document.getElemenetByName而不是按Id?我刚刚尝试过,并将其上载到live dchost,文本字段为“password”,但仍然没有luckUse document.getElementById('password').value;Firefox中的inspect当我可以让它工作时,我会记住这一点!…我已经尝试在live网站上应用此修复程序(如下所述)(目前已禁用所有其他验证)它什么也没做。当我单击“注册”时,页面会刷新,但没有验证?你介意看一看吗?如果不介意,你还有其他想法吗?谢谢
^.*(?=.{6,})(?=.*[a-zA-Z])(?=.*\d)(?=.*[!#$%&? "]).*$

---

^.*              : Start
(?=.{6,})        : Length
(?=.*[a-zA-Z])   : Letters
(?=.*\d)         : Digits
(?=.*[!#$%&? "]) : Special characters
.*$              : End



function validatePassword() {
    var newPassword = document.getElementById('changePasswordForm').newPassword.value;
    var regularExpression  = ^.*(?=.{6,})(?=.*[a-zA-Z])(?=.*\d)(?=.*[!#$%&? "]).*$/;
    alert(newPassword); 
    if(!regularExpression.test(newPassword)) {
        alert("password should contain atleast one number and one special character");
        return false;
    }
}
var passw = document.getElementById('password1').value;
var passw = document.getElementById('password-input-0').value;
if(passw.length < 5 ) //here should be 5
^.*(?=.{6,})(?=.*[a-zA-Z])(?=.*\d)(?=.*[!#$%&? "]).*$

---

^.*              : Start
(?=.{6,})        : Length
(?=.*[a-zA-Z])   : Letters
(?=.*\d)         : Digits
(?=.*[!#$%&? "]) : Special characters
.*$              : End



function validatePassword() {
    var newPassword = document.getElementById('changePasswordForm').newPassword.value;
    var regularExpression  = ^.*(?=.{6,})(?=.*[a-zA-Z])(?=.*\d)(?=.*[!#$%&? "]).*$/;
    alert(newPassword); 
    if(!regularExpression.test(newPassword)) {
        alert("password should contain atleast one number and one special character");
        return false;
    }
}