在Ember中禁用具有特定值的选择选项

时间:2016-05-25 15:53:04

标签: jquery ember.js

我正在使用Ember 1.4,当另一个选择元素(max_attempt_count)的值为1时,我遇到了一个问题,即在禁用选择元素(attempt_interval)时它会被禁用。在我的测试环境中,当不使用Ember时,它可以正常工作。有什么想法吗?

的jQuery

$(document).on('change', 'select[name=max_attempt_count]', function(){

    var ctrl=$(this);//$(this) refers to current clicked button
    var maxAttempt =ctrl.closest('form').find('select[name=max_attempt_count]');
    var interval =ctrl.closest('form').find('select[name=attempt_interval]');

    $(maxAttempt).change(function() { //each time a user selects a option (event triggered)
        $(interval).prop('disabled', this.value == 1);
    }).change(); //auto execute when page load
} )

HTML

<select id="ember894" class="ember-view ember-select chosen-select" name="max_attempt_count" style="display: none;">
 <option id="ember907" class="ember-view" value="1">
 <option id="ember908" class="ember-view" value="2"><option id="ember909" class="ember-view" value="3">
 <option id="ember910" class="ember-view" value="4">
 <option id="ember911" class="ember-view" value="5">
</select>

1 个答案:

答案 0 :(得分:0)

好的,你有2个选择菜单,其值为 attempt_interval max_attempt_count

attempt_interval 等于1时,需要禁用max max_attempt_count select

你应该像这样制作一个计算属性。

js file

maxAttemptDisabled: Ember.computed.equal('attempt_interval', 1)

HBS

{{select data=blah selection=attempt_interval}}

{{select data=blah2 selection=max_attempt_count disabled=maxAttemptDisabled}}

如果你想隐藏它

{{#unless maxAttempltDisabled}}
       {{select data=blah2 selection=max_attempt_count}}
{{/unless}}

如果你正在使用余烬2(一种方式但没有优先。请注意!需要等于帮助者)

{{select data=blah2 selection=max_attempt_count disabled=(is-equal attempt_interval 1)}}