链接选择选择

Tys*_*sen 5 jquery-chosen

我正在尝试使用ChosenChained来链接选择,但我不确定我是否正确实现.chosen().change()或者我得到的错误是一个错误.

这是我得到的:

<select id="Inputfield_date" name="date" data-placeholder="Select event date">
<option value=""></option>
<option value="WA">WA</option>
<option value="QLD">QLD</option>
<option value="VIC">VIC</option>
<option value="NSW">NSW</option>
<option value="SA">SA</option>
</select>

<select id="Inputfield_code" name="code" data-placeholder="Response code">
<option value=""></option>
<option value="601" class="WA">601</option>
<option value="602" class="WA">602</option>
<option value="402" class="QLD">402</option>
<option value="403" class="QLD">403</option>
<option value="301" class="VIC">301</option>
<option value="302" class="VIC">302</option>
<option value="201" class="NSW">201</option>
<option value="203" class="NSW">203</option>
<option value="501" class="SA">501</option>
</select>

$('#Inputfield_date').chosen().change(function() {
    $("#Inputfield_code").chained("#Inputfield_date");
});
Run Code Online (Sandbox Code Playgroud)

这给了我Uncaught RangeError:超出了最大调用堆栈大小.

编辑:我现在还需要隐藏/显示另一个字段,如果选择了一个特定的选项,我不知道正确的方法是什么.

Koe*_*en. 7

使用Chained文档中的示例,我在jsfiddle上提供了一个示例.

它实际上非常简单,只需像往常一样初始化Chained和Chosen,然后在chosen:updated其中一个选项发生变化时触发事件:

var selects = $('#Inputfield_code, #Inputfield_date');
$('#Inputfield_code').chained('#Inputfield_date');
selects.chosen({width: '300px'})

selects.on('change', function(){
    selects.trigger('chosen:updated');
});
Run Code Online (Sandbox Code Playgroud)

编辑:

对于你的第二个问题,我稍微更新了小提琴:http://jsfiddle.net/koenpunt/Fzh9G/2/

选择发送与更改事件一起选择的选项,因此检查是否选择了特定选项很容易:

$('#series').on('change', function(event, data){
    // First check if data exists, because if the change event
    // isn't triggered by Chosen `data` is undefined
    if(data){ 
        if(data.selected == 'a5'){
            $('#submit').hide();
        }else{
            $('#submit').show();
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

正如您将注意到的,如果您选择"奥迪"和"A5",按钮将消失.