我在wordpress中有2个下拉列表(main_cat和sub_cat)...第二个被禁用,应该在第一个被更改时启用。 当第一个下拉列表被更改时,它会进入(为了证明这一点,我添加了这一行警告('带有值main_cat的选项'+ $ mainCat);并且警报显示正确)。 然而,问题在于这一行:jQuery(“#sub_cat”)。prop(“disabled”,true);因为它什么也没做。
我检查了jsFiddle(jQuery 1.8.3)中的代码并且它完美地工作,但是当它放在Classipress中时,它不起作用。 我也试过jQuery(“#sub_cat”)。attr(“disabled”,“disabled”);
以下所有代码均为子主题。
任何想法为什么它不起作用或我怎样才能使它工作?
HTML
<select name="main_cat" id="main_cat">
<option selected="selected" disabled="disabled" value="none">Type</option>
<option>Option 1</option>
<option>Option 2</option>
</select>
<select name="sub_cat" id="sub_cat" disabled="disabled">
<option selected="selected" disabled="disabled" value="none">Brand</option>
<option>Option 1</option>
<option>Option 2</option>
</select>
JQUERY
jQuery(function ($) {
jQuery("#main_cat").change(function () {
var $mainCat = $('#main_cat').val();
//this is to check that it is entering when main_cat is changed
alert('The option with value main_cat ' + $mainCat);
$("#sub_cat").empty();
jQuery("#sub_cat").prop("disabled", true);
});
});
答案 0 :(得分:0)
你的闭包没有“jQuery”的上下文,使用那个功能里面的$。
编辑:您需要删除“已禁用”属性,就像添加它之前一样。
jQuery("#main_cat").on("change", function(){
var $mainCat=$('#main_cat').val();
alert('The option with value main_cat ' + $mainCat); //this is to check that it is entering when main_cat is changed
$("#sub_cat").removeAttr("disabled");
});