Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

select onChange not working inside a form

I have a question about form submit & onchange events not working together. When I change the value on the dropdown list the event viewroom() is not firing. Could anyone help me with this? The code is as follows

<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>
like image 639
Shih-Min Lee Avatar asked Feb 17 '13 09:02

Shih-Min Lee


3 Answers

Your function name conflicts with name and id of the select, just give another name to the function.

like image 140
Teemu Avatar answered Oct 08 '22 05:10

Teemu


You can't name a function the same as an element on your page. I suggest changing the function name to something like viewroomSelected as shown here in this jsFiddle.

Relevant changes:

function viewroomSelected()
{
  alert(123);
}

<select name="viewroom" id="viewroom" onChange="viewroomSelected()">
like image 45
Austin Mullins Avatar answered Oct 08 '22 06:10

Austin Mullins


I found that as you set name and id attribute same of your function name causing this conflict and prompting error viewroom is not a function, change the name of function. also define your js at the bottom of document.

function viewRoom()
{
    alert(123);
}

Working Demo

like image 43
Zaheer Ahmed Avatar answered Oct 08 '22 07:10

Zaheer Ahmed