【发布时间】:2016-10-21 20:11:56
【问题描述】:
所以这里我有一个带有单选按钮和提交输入的 html 表单。我遇到的问题是选择这些无线电输入并在事件函数中提醒选中的输入。
<div id="shippingMethod">
<label>Shipping Method:</label><br>
<input type="radio" value="free Mail" name="r_method" id="freeMail" checked> <label for="freeMail">Free Mail (1 Month)</label><br>
<input type="radio" value="UPS" name="r_method" id="ups">
<label for="ups">UPS (1 week)</label><br>
<input type="radio" value="DHL" name="r_method" id="dhl">
<label for="dhl">DHL (2-4 days)</label>
<input type="submit" value="enter">
</div>
<script type="text/javascript">
document.getElementById('shopping').addEventListener('submit', actions);
function actions(event){
event.preventDefault();
var method = document.getElementById('shopping').r_method;
for (var i = 0; i < method.length; i++){
if(method[i].checked == "true"){
alert(method[i].value);
}
}
}
</script>
每次我进入控制台并输入“方法”时,它都会显示“未捕获的 ReferenceError:方法未定义”,但是我在操作函数中定义了方法。当我每次按下提交输入时,也没有任何反应。但是,当我在控制台日志中创建此变量“方法”时。有用。 我该如何解决这个问题?
【问题讨论】:
-
什么是
r_method? IDshopping的元素是什么? -
r_method 是每个无线电输入的名称,有一个表单 ID,它实际上是“购物”,但我错误地认为它没有添加,所以想象 div id="shippingMethod" 在表单中带有 id="shopping"
-
这不仅仅是为了获取单选按钮的值,更多的是为什么这段代码在事件监听器的函数中不起作用,尽管代码似乎是正确的。
标签: javascript dom