2014-01-12 80 views
3

我爲一個表單製作了一個非常大的腳本,一切正常,除了我用onchange()選擇根本不起作用,但只在本腳本中有效。如果我試圖在空白頁面上做到這一點(只需放置一個腳本標記,把我的js放在裏面,把我的html代碼放在我的選擇標記中,等等......一切正常)。對象不是函數

所以我的問題是:爲什麼我的函數模式根本不工作?我的頭標中是否有任何問題?謝謝!

P.S.這是我在控制檯中看到:遺漏的類型錯誤:對象不是一個函數

<head> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 

<script> 


    function modele(form) { 
     var x = form.marque.selectedIndex; 
     alert(x); 
    } 
</script> 
    <style> 
     [...] 
    </style> 
</head> 

我的身體裏:

<form action="<?= $_SERVER['PHP_SELF'] ?>" method="post" id="credit"> 
[...] 
<td><label for="marque">Marque :</label></td> 
        <td> 
         <select id="marque" name="marque" onChange="modele(this.form)"> 
          <option></option> 
          <option>Acuras</option> 
          <option>Hondas</option> 
          <option></option> 
          <option></option> 
         </select> 
        </td> 
        <td><label for="modele">Modele :</label></td> 
        <td><select id="modele" name="modele"> 
          <option></option> 
         </select> 
        </td> 
[...] 
</form> 

回答

0

的問題是,你給的<select>元素的ID爲「MODELE 」。更改該功能的名稱或名稱。瀏覽器通過引用<select>的DOM節點來覆蓋該函數與全局名稱「modele」的綁定。

+0

幹得好!它現在工作得很好,謝謝!將來,我會記住這一點。 (我會在大約10分鐘內接受你的回答) – user3038607

+0

這個答案有什麼問題,downvoter? – Pointy

0

還有兩個其他名稱爲「modele」的對象。第一個是第二個select標籤的id,第二個是第二個select的名字,也是'modele'。

嘗試將兩者都更改爲其他名稱或將函數的名稱更改爲其他名稱以使其工作。

+0

「name」屬性的值不會導致問題。 – Pointy