Jquery removeClass不起作用

时间:2014-05-20 09:05:52

标签: jquery

我这里有两个脚本。我有datepicker ui.jquery。如果更改了selectbox的值,我需要做的是removeClass datepicker。但它不起作用。这是为什么?这是我的小提琴http://jsfiddle.net/aLgh2/3/

$("#tag").change(function() {
    if ( $(this).val() != "") {
    $("#pr_date").removeClass('datepicker');
    $("#gss_date").removeClass('datepicker');
    $(".readonly").prop('readonly', 'true');

} else {
    $("#pr_date").addClass('datepicker');
    $("#gss_date").addClass('datepicker');
    $(".readonly").prop('readonly', 'false');    
    }   
});



$(function() {
$( ".datepicker" ).datepicker({
dateFormat: 'yy-mm-dd',
changeMonth: true,
changeYear: true
});
});

3 个答案:

答案 0 :(得分:3)

您应该使用:

--DEMO--

$("#tag").change(function () {
    if (this.value) {
        $("#pr_date, #gss_date").datepicker('disable');
        $(".readonly").prop('readonly', true);

    } else {
        $("#pr_date, #gss_date").datepicker('enable');
        $(".readonly").prop('readonly', false);
    }
});

现在你仍然可以重构一下你的代码:

$("#tag").change(function () {
    var val = this.value;
    $("#pr_date, #gss_date").datepicker(val ? 'disable' : 'enable');
    $(".readonly").prop('readonly', !!val);
});

答案 1 :(得分:0)

删除truefalse中的单引号,如A.Wolff建议的那样。 它在小提琴中工作正常,试试吧。

它应该像

$(".readonly").prop('readonly', true);

$(".readonly").prop('readonly', false); 

答案 2 :(得分:0)

您的代码正常运行。它实际上正在删除该类。但是,窗口小部件已经存在,因此您不能只删除该类。尝试将removeClass行更改为:

$("#pr_date").datepicker( "destroy" );
$("#gss_date").datepicker( "destroy" );