假设我有一个表单,其中包含两个名为“question1”的单选按钮。还有另一个名为“question2”的文本输入。我想要最有效的方法来检查两个输入是否都已填满,所以我需要一些可以访问这些输入值的代码。
此行适用于大多数浏览器,但适用于Microsoft,因为它们有一个愚蠢的HTMLCollection层:
var val1 = document.forms[0].elements['question1'].value // undefined in Microsoft;
var val2 = document.forms[0].elements['question2'].value // undefined in Microsoft;
使用querySelector,我可以做一些适用于Microsoft的事情:
document.querySelector("form input[name='question1']:checked").value;
document.querySelector("form input[name='question2']").value;
请注意,这两行不同。我实际上有几十个这样的问题,所以我更喜欢一个适用于所有这些问题的代码。是否有一种Microsoft方式的功能类似于代码的第一部分?
澄清:
我想知道是否有一行代码适用于任何类型的输入。
答案 0 :(得分:0)
尝试使用IE:
var allElems = document.getElementsByTagName('question1');
for (i = 0; i < allElems.length; i++) {
if (allElems[i].type == 'radio' && allElems[i].value !== ' ') {
allElems[i].checked = true;
}
}
其余的:
var elements = document.getElementsByName('question1');
for (i=0;i<elements.length;i++) {
if(elements[i].value !== "") {
elements[i].checked = true;
}
}