2013-02-17 91 views
4

我有一個關於表單提交的問題& onchange事件不能一起工作。當我更改下拉列表中的值時,事件viewroom()不會觸發。任何人都可以幫助我嗎?代碼如下所示選擇onChange不在表單內工作

<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> 

回答

14

你函數名衝突與nameselectid,只是給另一個名稱的功能。

+0

非常感謝立即工作! – 2013-02-17 10:11:10

+0

另外有趣的是,如果我移動表單之外的select語句,那麼onChange事件沒有問題。 (這是正常的還是隻是我幸運?) – 2013-02-17 10:12:42

+0

不幸的是,我不知道,代碼似乎工作正是你desrcibed。 – Teemu 2013-02-17 10:18:09

4

您無法命名與頁面上的元素相同的功能。我建議將函數名改爲viewroomSelected,如here in this jsFiddle所示。

相關變化:

function viewroomSelected() 
{ 
    alert(123); 
} 

<select name="viewroom" id="viewroom" onChange="viewroomSelected()"> 
+0

感謝您的幫助! – 2013-02-17 10:16:22

2

我發現,當你設置nameid屬性相同的函數名造成這一衝突,並提示錯誤viewroom不是一個函數,改變功能名稱。還要在文檔的底部定義您的js。

function viewRoom() 
{ 
    alert(123); 
} 

Working Demo

+0

感謝您的幫助! – 2013-02-17 10:21:24