Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript,radiobutton.checked在IE中不工作_Javascript_Html_Internet Explorer - Fatal编程技术网

JavaScript,radiobutton.checked在IE中不工作

JavaScript,radiobutton.checked在IE中不工作,javascript,html,internet-explorer,Javascript,Html,Internet Explorer,我使用了一些JavaScript来检查HTML表单,看看用户是否选择了单选按钮。它在Chrome、FireFox和Safari中工作得非常出色,但在不同机器上试用过的IE ie9和ie11中却没有 这里有一个链接,指向学校作业页面,因此所有代码在源代码中都很容易看到,因此您可以查看代码,看到它在Chrome中工作,并看到IE中发生了什么。 表单提交到一个简单的echo php脚本,因此您不必担心它会发送到任何地方或保存任何信息 对于那些不想访问该链接的用户,以下是代码: window.onloa

我使用了一些JavaScript来检查HTML表单,看看用户是否选择了单选按钮。它在Chrome、FireFox和Safari中工作得非常出色,但在不同机器上试用过的IE ie9和ie11中却没有

这里有一个链接,指向学校作业页面,因此所有代码在源代码中都很容易看到,因此您可以查看代码,看到它在Chrome中工作,并看到IE中发生了什么。 表单提交到一个简单的echo php脚本,因此您不必担心它会发送到任何地方或保存任何信息

对于那些不想访问该链接的用户,以下是代码:

window.onload = setupEvents;
function setupEvents() {
document.getElementById('contactForm').onsubmit = checkForm;
}

function checkForm () {
var shootType = document.contactForm.shootType
var shootInstruct = document.getElementById('shootInstruct')
var checkOne = false;
var i;
for (i in shootType) {
  if (shootType[i].checked) {
    checkOne = true;
  }
}
  if (checkOne != true) {
    alert("Please tell me what kind of photography shoot you're interested in.");
    shootInstruct.style.color = "#FF0000";
    shootInstruct.style.fontSize = "1.2em";
    shootInstruct.style.fontWeight = "Bold";
    return false;
  }
  else {
    return true;
  }
}
shootType在HTML中引用了大约6个具有相同名称属性的单选按钮,因此它基本上起到了数组的作用。正如您所看到的,这只是在该数组中运行,检查一个是否被选中,然后在一个被选中时提交表单,或者在一个未被选中时不提交表单。在所有其他浏览器中都能完美工作,但在IE中,即使选中单选按钮,它也不会提交。由于我只是在学习js,我不确定这其中的哪一部分是IE不支持的,也没有太多的运气在谷歌上搜索这个问题。有人知道为什么这在IE中不起作用吗?

不要使用for..在列表中,使用标准for循环。在IE中,列表具有您不期望的其他可枚举属性:

var controls=document.forms[0].r; 对于控制文档中的var p。写“+p+”;