无论类型如何,都要检查输入字段的值

时间:2014-12-05 13:04:34

标签: javascript

我已经看到并阅读了this个问题。我在那里找不到答案。

我有一些接受html模板的代码,并在表单中使用该模板。 该模板将包含x个输入字段。

有没有办法一般检查这些输入字段中的值? 有点像这样:

var inputFields = element.getElementsByTagName('input');
inputFields.forEach(function (element) {
    var value = element.value;
    // ... something
});

我知道这不会奏效,但你明白了。

我想我必须针对不同的输入类型编写特殊情况,但我想我是否有任何人对此问题有任何经验。

这是用纯JavaScript完成的,所以我真的不需要jQuery。除非你在jQyery中有一个非常简洁的方法,否则只需简单的JavaScript。

编辑:我需要检查是否已在字段中输入任何输入,无论是文件还是文本。我需要删除那些没有价值的人的名字属性。

1 个答案:

答案 0 :(得分:0)

使用以下内容,我无法看到您需要针对不同类型进行任何特殊处理。您只需阅读value属性:

<script>
  var t = '<table>';
  var inputTypes = ('hidden text tel url email password datetime date month week' +
                    ' time number range color checkbox radio file submit image' +
                    ' reset button').split(' ');
  var type;

  for (var i=0, iLen=inputTypes.length; i<iLen; i++) {
    type = inputTypes[i];
    value = type == 'number'? 10 : 'input type ' + type;
    t += '<tr><td>' + type + '<td><input type="' + type +
         '" name="' + type + 'Input" value="' + value + '">';
  }
  document.write(t + '<\/table>');
</script>

<button onclick="getValues(document.getElementsByTagName('input'))">Get values</button>

<script>
function getValues(inputs) {
  var input;
  for (var i=0, iLen=inputs.length; i<iLen; i++) {
    input = inputs[i];
    console.log(input.name + ': ' + input.value);
  }
}
</script>

您可能需要检查是否已选中复选框和无线电。为此,获取值可以是:

if (input.type in {radio:'', checkbox:''}) {

  if (input.checked) {
    // get value
  }

} else {
  // get value
}