CoDrops下降onChange事件不会奏效

时间:2016-07-23 18:33:38

标签: javascript jquery html

我将onethese 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

1 个答案:

答案 0 :(得分:1)

确保在html之前定义了sendForm()函数。如果这没有帮助尝试这个,

您使用的jquery下拉插件具有配置参数“onOptionSelect”。 您可以将函数传递给此参数,该参数将接收所选选项作为参数。

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