我将one的these dropdown effects整合到我的项目中。我想列出一个国家列表,当访问者选择一个国家时,它会将他/她发送到一个页面。问题是当 dropdown.js 处于混合状态时,onChange()事件无法正常工作。
我已经尝试了
onChange='this.form.submit()"
并且
onChange='sendForm()"
...
<script type="text/javascript">
function sendForm() {
document.getElementById("destination-select").submit();
}
</script>
如果删除dropdown.js,两者都有效,但显然效果会丢失。
表单是
<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>
正如@Amit指出的那样,有一个onOptionSelect()方法,我用它并找到,有效。问题是它没有检索所选的选项。 onChange =&#34; sendForm()&#34;也不是onChange =&#34; this.form.submit()&#34;。我甚至试图用.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
答案 0 :(得分:1)
确保在html之前定义了sendForm()函数。如果这没有帮助尝试这个,
您使用的jquery下拉插件具有配置参数“onOptionSelect”。 您可以将函数传递给此参数,该参数将接收所选选项作为参数。
$("#cd-dropdown").dropdown(
onOptionSelect: function(opt){
// you can call your sendForm() here
}
);