选择onChange不在窗体内工作

select onChange not working inside a form

本文关键字:工作 窗体 onChange 选择      更新时间:2023-09-26

我有一个关于表单提交的问题&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>

您的函数名称与selectnameid冲突,只需为函数指定另一个名称即可。

不能将函数命名为与页面上的元素相同的名称。我建议将函数名更改为类似viewroomSelected的名称,如jsFiddle中所示。

相关变更:

function viewroomSelected()
{
  alert(123);
}
<select name="viewroom" id="viewroom" onChange="viewroomSelected()">

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

function viewRoom()
{
    alert(123);
}

工作演示

更改

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

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

只是为了提供一些提示,而不是本例,可能有人添加了一个新的不同功能,杀死了旧功能。

<select ... onchange="anOldFuncion()">

在javascript中,你后来做到了:

selectX.onchange = function(){};  //bye bye function from the tag.

这个代码中的命名很糟糕。我会选择:

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