9

我有一个关于表单提交和 onchange 事件不能一起工作的问题。当我更改下拉列表中的值时,事件 viewroom() 没有触发。谁能帮我解决这个问题?代码如下

<script type="text/javascript">
function viewroom()
{
    alert(123);
}
</script>

<form id="myform" name="myform" action="joinroom.php" method="post">
<select name="viewroom" id="viewroom" onChange="viewroom()">
    <option value="1">Room1 </option>
    <option value="2">Room2 </option>
</select>
<input type="submit" onclick="this.form.submit()" value="Join room"><br>
</form>
4

4 回答 4

18

您的函数名称与name和冲突,只需给函数取另一个名称idselect

于 2013-02-17T10:05:10.607 回答
4

您不能将函数命名为与页面上的元素相同的名称。我建议将函数名称更改为类似于此 jsFiddleviewroomSelected中所示的名称。

相关变化:

function viewroomSelected()
{
  alert(123);
}

<select name="viewroom" id="viewroom" onChange="viewroomSelected()">
于 2013-02-17T10:06:06.203 回答
2

我发现由于您设置nameid属性相同的函数名称导致此冲突并提示错误viewroom不是函数,请更改函数名称。还在文档底部定义您的 js。

function viewRoom()
{
    alert(123);
}

工作演示

于 2013-02-17T10:12:27.747 回答
0

改变

<select name="viewroom" id="viewroom" onChange="viewroom()">

<select name="viewroom" id="viewroom" onChange="()=>viewroom()">
于 2020-06-12T15:31:38.010 回答