Javascript IE11中不可访问单选按钮值
我的HTML页面上有一个单选按钮:Javascript IE11中不可访问单选按钮值,javascript,html,internet-explorer-11,Javascript,Html,Internet Explorer 11,我的HTML页面上有一个单选按钮: <form name="myForm" onsubmit="calc_risk(); return false;" method="post"> <input type="radio" name="q1" value="1"> Yes <input type="radio" name="q1" value="0"> No <input type="submit" value="Submit"&g
<form name="myForm" onsubmit="calc_risk(); return false;" method="post">
<input type="radio" name="q1" value="1"> Yes
<input type="radio" name="q1" value="0"> No
<input type="submit" value="Submit">
</form>
在firefox中,该变量按预期包含1或0(取决于我选择的单选按钮)。在IE11中,该值未定义。为什么单选按钮在IE11中不起作用
编辑
我现在使用jquery访问该值:
var radioValue = $("input[name='q1']:checked").val();
这两种浏览器都适用。通过添加以下内容,确保jquery包含在标题部分中:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
在web api规范中,访问上的
值
属性并获取其中第一个选中单选按钮的值是一项相对较新的功能
Internet Explorer(作为一个旧浏览器,除了安全补丁外,没有任何新的开发工作)不支持它
您可以循环收集并测试第一个选中的元素
var a = get_first_checked_value(document.forms["myForm"]["q1"]);
function get_first_checked_value(form_controls) {
for (var i = 0; i < form_controls.length; i++) {
if (form_controls[i].checked) {
return form_controls[i].value;
}
}
}
var a=get_first_checked_value(document.forms[“myForm”][“q1”]);
函数get_first_checked_值(窗体控件){
对于(var i=0;i
这是我的解决方案,在IE 11和Chrome浏览器中进行了测试
<html>
<body>
<form name="myForm" onsubmit="calc_risk(this); return false;" method="post">
<input type="radio" name="q1" value="1"> Yes
<input type="radio" name="q1" value="0"> No
<input type="submit" value="Submit">
</form>
<script language="javascript">
function calc_risk (theForm)
{
var q1Values = theForm.q1;
for (i=0 ;i<q1Values.length;i++)
{
if(q1Values[i].checked)
{
alert(q1Values[i].value);
}
}
}
</script>
</body>
</html>
对
不
功能计算风险(表格)
{
var q1值=形式q1;
对于(i=0;我能给你一个片段吗?那么,微软真的很愚蠢吗?我应该避免IE支持吗?@user3182532欢迎加入clubI不会这样认为,IE只是不同而已=)。不过,我的回答中或多或少有一个跨浏览器的解决方案。
<html>
<body>
<form name="myForm" onsubmit="calc_risk(this); return false;" method="post">
<input type="radio" name="q1" value="1"> Yes
<input type="radio" name="q1" value="0"> No
<input type="submit" value="Submit">
</form>
<script language="javascript">
function calc_risk (theForm)
{
var q1Values = theForm.q1;
for (i=0 ;i<q1Values.length;i++)
{
if(q1Values[i].checked)
{
alert(q1Values[i].value);
}
}
}
</script>
</body>
</html>