传递给JS函数的参数是" undefined"在IE和Safari上

时间:2015-10-29 19:30:04

标签: javascript html forms internet-explorer safari

使用下面的HTML和Javascript代码,我发现在IE11和iOS上的Safari中,表单没有传递"选择"的值。单选按钮。使用alert()函数我可以看到"回答"是未定义的,在Chrone和Firefox中它具有预期值"对"或"错误"。

有没有人建议如何解决这个问题? 并且通过扩展:为什么它在IE和Safari中没有表现出来?

HTML:

    <form>
        <p><label><input type="radio" name="choice" value="right" />Choice One</label></p>
        <p><label><input type="radio" name="choice" value="wrong" />Choice Two</label></p>
        <p><input type="button" value="Check Answer" onclick="checkThing(choice.value)"></p>
    </form>

使用Javascript:

function checkThing(answer){
    if(answer == "right"){
        //Show one thing
    }
    else if(answer == "wrong"){
        //show another thing
    }
}

1 个答案:

答案 0 :(得分:0)

这有点令人费解,但你必须迭代才能在Internet Explorer中运行。

我添加了一个ID并从function checkThing(){ var answers = document.getElementById('myform').elements['choice']; for(var i = 0; i < answers.length; i++) { if (answers[i].checked === true) { answer = answers[i].value; } } alert(answer); }事件 - 工作(跨浏览器)版本中删除了参数:

   <form id="myform">
        <p><label><input type="radio" name="choice" value="right" />Choice One</label></p>
        <p><label><input type="radio" name="choice" value="wrong" />Choice Two</label></p>
        <p><input type="button" value="Check Answer" onclick="checkThing(choice.value)"></p>
    </form>
<%@ OutputCache ... VaryByContentEncoding="gzip"  %>