输入值为';如果读取不正确,则显示为未定义的JavaScript

输入值为';如果读取不正确,则显示为未定义的JavaScript,javascript,html,forms,Javascript,Html,Forms,我正在创建一个网站,其中JavaScript正在读取表单的输入,但当我执行警报时,它表示输入值未定义。为什么呢 这是我的表格: <form action="" method="post" id="reportform"> <input type="radio" name="report" value="customer"><p>Customers</p> <input type=

我正在创建一个网站,其中JavaScript正在读取表单的输入,但当我执行警报时,它表示输入值未定义。为什么呢

这是我的表格:

<form action="" method="post" id="reportform">
                <input type="radio" name="report" value="customer"><p>Customers</p>
                <input type="radio" name="report" value="item"><p>Items Sold</p>
                <input type="radio" name="report" value="department"><p>Sales Departments</p>
                <input type="radio" name="report" value="person"><p>Sales People</p>
                <input type="button" name="reportsubmit" value="Submit" onClick="readText(this.form)">
</form>

顾客

出售物品

销售部门

销售人员

以下是我的JavaScript:

<script>
            function readText (form) {
            var radio = form.report.value;
            alert("You entered: " + radio);
        }
</script>

函数readText(表单){
var radio=form.report.value;
警报(“您输入:“+收音机”);
}

您的代码对我来说很好:

确保js代码在表单前面

    function readText (form) {
    var radio = form.report.value;
    alert("You entered: " + radio);
}

您可以从选中的复选框中读取值,如下所示:

function readText(form) {
  var checked = form.querySelector('input:checked');
  var value = checked ? checked.value : null;
  // do something with `value`
}
element.querySelector()
适用于IE8+。
:checked
是CSS3的东西,我想,所以可能是IE9+


您必须检查
checked
属性,以测试选中了哪个单选按钮:

function readText (form) {
    var radios = form.report;
    for(var i = 0; i < radios.length; i++){
        if(radios[i].checked){
            rate_value = radios[i].value;
            alert("You entered: " + rate_value)
        }
    }
}
函数readText(表单){
var无线电=form.report;
对于(变量i=0;i
或者,如果您使用jQuery,您可以简单地使用:


$('#reportform input[name=“report”]:checked').val()

您无法通过这种方式获取当前选中的单选按钮值。您必须在列表中找到选中的一个(这就是
form.report.value
的值)。Chrome为NodeList界面添加了一个非标准扩展。我不知道如何/何时设置Chrome节点列表的“value”属性的详细信息。Firefox没有做到这一点。