Javascript onClick不能处理多个表单

时间:2015-03-06 09:22:05

标签: javascript html forms

我有一个带有一些单选按钮的动态生成表单。对于每个单选按钮,都会有 onClick / onChange 功能。

问题在于,只要单击单选按钮,就会调用第一个表单单选按钮的onClick

<form name="a" id="a">
<input type="radio" name="radioa" onclick="func(1);"/>
<input type="radio" name="radioa" onclick="func(2);"/>
</form>
.
.
<form name="f" id="f">
<input type="radio" name="radiof" onclick="func(3);"/>
<input type="radio" name="radiof" onclick="func(4);"/>
</form>

<script>
function func(val){
alert(val);
}
</script>

我尝试使用 onchange 功能也无法正常工作。 始终会调用第一个表单的单选按钮功能,并且每次都会显示alert(1)

感谢任何帮助。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

这样怎么样。我假设您在func()上作为参数放置的值是该单选按钮的值。 如果是这样,那么您可以将HTML标记更改为:

<form name="a" id="a">
<input type="radio" name="radioa" onclick="func(this);" value="1" />
<input type="radio" name="radioa" onclick="func(this);" value="2" />
</form>
.
.
<form name="f" id="f">
<input type="radio" name="radiof" onclick="func(this);" value="3" />
<input type="radio" name="radiof" onclick="func(this);" value="4" />
</form>

不是将值作为参数传递给函数,而是使用value=""属性(我认为更好)。然后传递this作为参数,其中包含触发onClick的HTML dom。

然后在你的javascript:

<script>
function func(val){
    alert(val.value);
}
</script>

Check this FIDDLE.