获取表单值仅在IE中返回未定义

时间:2016-11-23 17:08:23

标签: javascript jquery html

我正把头发拉出来。我在我的网页上有一个表单和一些从表单中提取值的javascript,我正在根据输入采取各种操作。

进行故障排除时,该值将作为未定义返回。

JS

var days = document.forms["meal-radio"].elements["days"].value;

HTML

        <form class= "meal-table" id="meal-radio" onsubmit="return false">
           <div class ="meal-plan-choice row" id="Meals4">
      ...................................................................
        <fieldset id="days">
              <div class="width40">
              <input type="radio" id="radio08" name="days" value="Five"/>
               <label for="radio08"><span class="radiospan"></span>5 Days</label>
            </div>


            <div class="width40">
           <input type="radio" id="radio09" name="days" value="Seven"/>
              <label for="radio09"><span class="radiospan"></span>7 Days</label>
            </div>

        </fieldset> <!-- end style fieldset-->
        ..............................................................
</div></form>

这不仅适用于IE,在Chrome和Firefox中运行良好

2 个答案:

答案 0 :(得分:2)

由于您在问题中标记了,我将假设您愿意接受jQuery答案。

你可以使用它,它适用于所有浏览器:

var days = $("#days input[type='radio']:checked").val()

答案 1 :(得分:0)

使用纯javascript:

// Get the form
var form = document.getElementById('meal-radio');

// Which is selected?
var currentSelected = form.querySelector('input[name="days"]:checked').value;

// Alert the value
alert( currentSelected ); // temp-alert

的jsfiddle:
https://jsfiddle.net/atr46c9r/1/

请注意,为了获取当前选定的无线电,它需要将其属性设置为:选中其他某些浏览器会出现/可能存在某些问题。