检查表单的值';使用javascript创建字段

检查表单的值';使用javascript创建字段,javascript,html,web,Javascript,Html,Web,我想检查表单的值是否为空?在许多验证器(比如jquery.ketchup.0.3.2)让我失败后,我正在尝试编写自己的验证器(或者可能是我失败了) 但是我不能让这个功能工作 function validate() { alert("hmmm"); var inputs = document.forms["register"].getElementsByTagName("input"); for (var item in inputs) { if(item.

我想检查表单的值是否为空?在许多验证器(比如jquery.ketchup.0.3.2)让我失败后,我正在尝试编写自己的验证器(或者可能是我失败了) 但是我不能让这个功能工作

function validate() {
    alert("hmmm");
    var inputs = document.forms["register"].getElementsByTagName("input");
    for (var item in inputs) {
        if(item.value.trim() == "")
            alert("nullField");
    }
}

您能告诉我上面的函数有什么问题吗?

如果要使用jQuery,请使用jQuery


如果要使用jQuery,那么就使用jQuery


我想知道这是否是您使用的循环的
。若要在集合(数组)上循环,请对
循环使用普通的
,而不是对in
使用
。也许这可以解决这个问题:

function validate() {
    alert("hmmm");
    var inputs = document.forms["register"].getElementsByTagName("input");
    for (var i = 0; i < inputs.length; i++) {
        if(inputs[i].value.trim() == "")
            alert("nullField");
    }
}
参考资料:

  • .find()
  • .each()
  • .trim()

我想知道这是否是您使用的
循环的
。若要在集合(数组)上循环,请对
循环使用普通的
,而不是对in
使用
。也许这可以解决这个问题:

function validate() {
    alert("hmmm");
    var inputs = document.forms["register"].getElementsByTagName("input");
    for (var i = 0; i < inputs.length; i++) {
        if(inputs[i].value.trim() == "")
            alert("nullField");
    }
}
参考资料:

  • .find()
  • .each()
  • .trim()

如果只想使用javascript:

首先,确保定义了微调功能:

if(!String.prototype.trim) {
  String.prototype.trim = function () {
    return this.replace(/^\s+|\s+$/g,'');
  };
}
现在了解实际功能:

 function validate() {
    var inputs = document.forms["register"].getElementsByTagName("input");
    for (var i = 0, len = inputs.length; i < len ; i++) {
        if(inputs[ i ].value.trim() == ""){
            // Validation failed
        }
    }
    // Validation successful
}
函数验证(){
var输入=document.forms[“register”].getElementsByTagName(“输入”);
对于(变量i=0,len=inputs.length;i
如果只想使用javascript:

首先,确保定义了微调功能:

if(!String.prototype.trim) {
  String.prototype.trim = function () {
    return this.replace(/^\s+|\s+$/g,'');
  };
}
现在了解实际功能:

 function validate() {
    var inputs = document.forms["register"].getElementsByTagName("input");
    for (var i = 0, len = inputs.length; i < len ; i++) {
        if(inputs[ i ].value.trim() == ""){
            // Validation failed
        }
    }
    // Validation successful
}
函数验证(){
var输入=document.forms[“register”].getElementsByTagName(“输入”);
对于(变量i=0,len=inputs.length;i
我强烈建议不要编写自己的验证。尽管如此,您的代码仍存在一些问题

  • for..var..in构造遍历对象的所有属性。因此,对象
    foo={bar:'0',baz:'1'}
    将迭代
    bar
    baz
    (属性,而不是值)。如果要获取值,需要通过执行以下操作进行指示
    for(foo中的vari){console.log(foo[i]);}
    ,或者在您的示例中:
    inputs[item].value
  • getElementsByTagName
    返回一个
    NodeList
    (请参阅)<代码>节点列表
  • s在列表中的元素旁边具有其他属性 如果您使用的是jQuery,那么只需执行
    $(“#register input”).val()
    即可获得相关值的数组,并且可以使用
    $.map
    函数对每个值执行操作

    我强烈(我的意思是强烈)建议不要编写自己的验证。尽管如此,您的代码仍存在一些问题

  • for..var..in构造遍历对象的所有属性。因此,对象
    foo={bar:'0',baz:'1'}
    将迭代
    bar
    baz
    (属性,而不是值)。如果要获取值,需要通过执行以下操作进行指示
    for(foo中的vari){console.log(foo[i]);}
    ,或者在您的示例中:
    inputs[item].value
  • getElementsByTagName
    返回一个
    NodeList
    (请参阅)<代码>节点列表
  • s在列表中的元素旁边具有其他属性
    如果您使用的是jQuery,那么只需执行
    $(“#register input”).val()
    即可获得相关值的数组,并且可以使用
    $.map
    函数对每个值执行操作

    或者可能是我没有通过:)你会得到哪个错误?您将在HTML中的何处应用此函数?你能发布一个JSFIDLE吗?或者我没能通过:)你会得到哪个错误?您将在HTML中的何处应用此函数?你能发布一个JSFIDLE吗?如果你打算建议使用jQuery,那么就用它来完成OP的所有工作。您遗漏了
    .forms[“register”]
    part@Ian-OP建议在为问题添加标签时使用jQuery
    jQuery
    。不过我已经更新了你的观点,很好地理解了。我唯一的观点是你没有首先找到表单,就是这样。如果你想建议使用jQuery,那么就用它来完成OP的所有工作。您遗漏了
    .forms[“register”]
    part@Ian-OP建议在为问题添加标签时使用jQuery
    jQuery
    。不过我已经更新了你的观点,很好地理解了。我唯一的观点是你没有首先找到表单,就是这样。thnx-它起作用了:)为了澄清一下,我可以通过调用输入[i]来更改null文件的其他属性吗。它们上的someMethod?@dave yes,没错。例如,您可以使用
    输入[i]更改其边框thnx-它起作用了:)为了澄清,我可以通过调用输入[i]来更改null文件的其他属性。它们上的somethod?@dave是的,没错。例如,您可以使用
    输入[i]更改其边框