2016-07-23 8 views
0

私はonethese dropdown effectsを私のプロジェクトに統合しています。私は国のリストを作りたいと思います。訪問者が国を選択すると、その人をページに送ります。問題は、dropdown.jsが混在しているときに、onChange()イベントが機能しなくなることです。CoDropsドロップダウンのonChangeイベントが機能しません

私はdropdown.jsを削除するが、明らかに効果が失われた場合、私は

onChange='this.form.submit()" 

でそして

onChange='sendForm()" 
... 
<script type="text/javascript"> 
function sendForm() { 
    document.getElementById("destination-select").submit(); 
} 
</script> 

仕事の両方で試してみました。

フォームが@Amitとして

<form id="destination-select" action="/" method="get"> 
    <select name="destination" id="cd-dropdown" class="cd-select" onchange="sendForm()"> 
     <option value="-1" selected>Destination</option> 
     <option value="argentina" class="icon-argentina">Argentina</option> 
     <option value="brazil" class="icon-brazil">Brazil</option> 
     <option value="spain" class="icon-spain">Spain</option> 
     <option value="more " class="icon-more">See more</option> 
    </select> 
</form> 

UPDATE

では、指摘onOptionSelect()メソッドがあります、私はそれを使用して見つけ、働きます。問題は、選択したオプションを取得しないことです。また、onChange = "sendForm()"もonChange = "this.form.submit()"もありません。私はさらに.click()メソッドでクリックボタンを偽造しようとしました。何か案は?ありがとう!

コードのビット:

<form id="destination-select" action="/" method="get"> 
    <select name="destination" id="cd-dropdown" class="cd-select" > 
     <option value="-1" selected disabled>Destination</option> 
     <option value="argentina" class="icon-argentina">Argentina</option> 
     <option value="brazil" class="icon-brazil">Brazil</option> 
     <option value="spain" class="icon-spain">Spain</option> 
     <option value="more" class="icon-more">See more</option> 
    </select> 
</form> 

のJavascript:

$(function() { 
    $('#cd-dropdown').dropdown({ 
     gutter : 5, 
     delay : 100, 
     random : true, 
     onOptionSelect: function(opt){ 
      sendForm(); 
     } 
    }); 
}); 

sendForm()

function sendForm() { 
      document.getElementById('destination-select').submit(); 
     } 

結果は常に:url.dev/?destination=-1

答えて

1

sendForm()を使用していることを確認してください。あなたのhtmlの前に定義されたイオン。これで解決できない場合は、

jqueryドロップダウン・プラグインには、構成パラメータ "onOptionSelect"があります。 このパラメータには、選択したオプションをパラメータとして受け取る関数を渡すことができます。

$("#cd-dropdown").dropdown(
    onOptionSelect: function(opt){ 
     // you can call your sendForm() here 
    } 
); 
+0

いいえ、onOptionSelectはうまくいきます。しかし、今問題は、選択されたオプションを "-1"に設定することです。つまり、選択したオプションを取得するのではなく、ドロップダウンのデフォルトオプションを取得します。私は試しました: 'document.getElementById( 'destination-select')。submit();' onOptionSelect私はsendForm()メソッドを呼び出して試してみました。同じ結果を持つすべて:url?destination = -1 // - 1がデフォルトのオプション値です –

+1

@JorgeAnzolaこれをチェックしてくださいhttps://gist.github.com/amitonkare/fcb9e8ea55050f29b1708612d0f2b247 これは動作し、選択したオプションを警告します。 – Amit

+0

Genius!それは私をたくさん助けました。私はまだフォームにいくつかの問題を抱えていましたが、国を取得する方法を掌握したので、 'window.location.replace(" destination = "+ destination")のようなことをすることができました。私はそれが悪い練習か何かであるかどうかわからないが、働いた。ありがとう! –

関連する問題