0

尝试学习 JavaScript,我想取得了不错的进步,但我一直在验证表单,试图查看是否有人有同样的问题,搜索没有出现任何问题。那你能帮帮我吗?

    var minlength = 6;
var pwlength = document.getElementById('psswrd');
var invalid = " ";

function validate() {

    if (pwlength.length < minlength && pwlength == invalid) {
        alert("Password not valid");

    else { 
        alert("Password okay!");
    }
}

submitbtn.onClick = validate();
4

3 回答 3

1
  • 您在哪里称呼它并不明显-我已将其包装在 window.onload
  • 您没有正确访问按钮。取决于您如何命名或标识按钮,其中一个或将起作用但是不要将 onclick 处理程序分配给提交按钮,而是将提交处理程序分配给 document.forms[0].submitbtn document.getElementById("submitbtn")表单 document.getElementsByName("submitbtn")[0]
  • 没有必要对单个空格进行测试,因为无论如何它都少于 6 个字符。
  • && 是 AND,你的意思是 || 或者
  • onclick 必须全部小写。
  • 您将 onclick 分配给 validate 而不是 validate 的结果
  • 你不停止提交

我已经从这里进行了修剪 ,我假设表单具有 ID="form1"

window.onload=function()
  document.getElementById("form1").onsubmit = validate;
}

if(typeof String.prototype.trim !== 'function') { // let's help older IEs
  String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g, ''); 
  }
}

function validate() {
  var minlength = 6;
  var pw = document.getElementById('psswrd');
  if (pw.value.length < minlength || pw.value.trim() == "") {
    alert("Password not valid");
    pw.focus();
    return false;
  }
  return true; // allow submission  
}
于 2012-08-11T06:55:02.200 回答
0
var minlength = 6;

var pwlength = document.getElementById('psswrd');

var invalid = " ";

function validate() {

    if (pwlength.length < minlength && pwlength == invalid) {
        alert("Password not valid");
}

    else { 
        alert("Password okay!");
    }
}
于 2012-08-11T06:45:35.340 回答
0

你在这里有几个问题。

1)pwlength.length不会让你走得很远。pwlength等于 html 对象,而不是 html 对象的值。将实际变量更改为以下内容,您应该会得到正确的结果:

var pwlength = document.getElementById('psswrd').value;

2) 在语句else部分之前if ... else,您需要if用大括号 ( }) 结束语句来结束语句。将该部分更改为以下内容:

} else {

3)您的验证以检查长度== invalid是否为奇数。仔细检查并摆脱它。

4) 您的 onclick 事件需要如下所示:

submitbtn.onclick = function(){ validate() };

注意:小写 event 关键字并function() { ... };包裹您要运行的函数。

于 2012-08-11T06:51:38.547 回答