2016-12-30 34 views
0

我想在我的表單上做onchange事件。 onchange事件使用ajax get。但它不會返回價值。onchange ajax得不到工作表單方法後

這裏是我的頭資產

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 

這裏是我的形式

<form action="/" method="post" > 
    <select name="juz" onchange="juz(this.value)"> 
     <option value="">-- Pilih --</option> 
     <option value="1">1</option> 
     <option value="2">2</option> 
     <option value="3">3</option> 
    </select> 
    <div id="keluar"></div> 
</form> 

和這裏的腳本

<script type="text/javascript"> 
     function juz(val) { 
     var hasilSurat = $("#keluar"); 
     $.ajax({ 
      url: "{{URL::asset('v1/juz')}}" + '/' + val, 
      method: 'GET', 
      dataType: 'json', 
     }).done(function(data) { 
      if (data.response == 1) { 
       hasilSurat.val(data.result); 
      } else { 
       hasilSurat.val(data.result); 
      } 
     }); 
    } 
</script> 

,並從控制檯日誌

test:11 Uncaught TypeError: juz is not a function 
at HTMLSelectElement.onchange 
+0

您的函數名稱不匹配。它應該和js以及HTML一樣。 in HTML'onchange =「jus(this.value)''但是在js中'函數juz(val)' 在這兩個位置都取一個名字,這個代碼無法找到函數名'jus',所以把它改爲' 。juz' –

+0

抱歉,這是我的舊的錯,我已經編輯從控制檯日誌+新它仍然調試 –

+0

什麼是控制檯錯誤 –

回答

0

變化選擇name到其它一些其他的價值比juz

<select name="juza" onchange="juz(this.value)"> 

裏面form標籤我們不能設置name屬性值onchange事件處理函數的名稱。

這個代碼將工作,因爲它不是內form

<select name="juz" onchange="juz(this.value)"> 
     <option value="">-- Pilih --</option> 
     <option value="1">1</option> 
     <option value="2">2</option> 
     <option value="3">3</option> 
    </select> 

這個代碼將不能工作,因爲select是內部形狀,

<form action="/" method="post" > 
    <select name="juz" onchange="juz(this.value)"> 
     <option value="">-- Pilih --</option> 
     <option value="1">1</option> 
     <option value="2">2</option> 
     <option value="3">3</option> 
    </select> 
    <div id="keluar"></div> 
</form> 

不知道的原因,我會嘗試更新。

+0

之下正確使用它!因爲我將「name」屬性重命名爲另一個!謝謝! –