4

我希望有一个超级简单的验证脚本,它将表单上的总输入与表单上的值的总输入相匹配。您能否帮助解释为什么以下内容不起作用,并提出可行的解决方案?

小提琴:http: //jsfiddle.net/d7DDu/

填写一项或多项输入,然后单击“提交”。我想查看填写的输入数作为结果。到目前为止,它只显示0

HTML:

<input type="text" name="one">
<input type="text" name="two">
<input type="text" name="three">
<textarea name="four"></textarea>
<button id="btn-submit">Submit</button>
<div id="count"></div>

JS:

$('#btn-submit').bind('click', function() {
    var filledInputs = $(':input[value]').length;
    $('#count').html(filledInputs);
});
4

2 回答 2

4

[value]指的是 value属性,这与 value属性有很大的不同。

属性在您键入时更新,属性保持不变。顺便说一句,这意味着您可以elem.value = elem.getAttribute("value")“重置”表单元素。

就个人而言,我会做这样的事情:

var filledInputs = $(':input').filter(function() {return !!this.value;}).length;
于 2013-05-19T03:31:28.917 回答
1

试试这个:http: //jsfiddle.net/justincook/d7DDu/1/

$('#btn-submit').bind('click', function() {
    var x = 0;
    $(':input').each(function(){
        if(this.value.length > 0){ x++; };
    });
    $('#count').html(x);
});
于 2013-05-19T03:32:00.670 回答