2016-12-30 10 views
0

私のフォームでonchangeイベントを実行しようとしています。 onchangeイベントはajax getを使用します。値を返しません。onchange ajaxがフォームメソッドポストで動作しない

はここにここに私のフォーム

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

だとコンソールログから私のヘッダー資産

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

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

機能名が一致しません。 jsとHTMLの両方で同じでなければなりません。 のHTML 'onchange =" jus(this.value) 'js' function juz(val) ' 両方の場所で単一の名前を取るこのコードは関数名' jus'を見つけることができないので ' juz' –

+0

残念ですが、コンソールログから新しく編集しました。まだデバッグ中です –

+0

コンソールエラーは何ですか? –

答えて

0

変更我々はonchangeイベントハンドラ関数名にnameプロパティの値を設定することができませんformタグの中にjuz

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

以外の他のいくつかの値にnameを選択します。それはselectがフォーム内にあるため、このコードは動作しません内部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> 

ではありませんので、

このコードは

<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

それは私が "名前"属性を別のものにリネームするので動作します! –

関連する問題