我这里有两个脚本。我有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
});
});
答案 0 :(得分:3)
您应该使用:
$("#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)
删除true
和false
中的单引号,如A.Wolff建议的那样。
它在小提琴中工作正常,试试吧。
它应该像
$(".readonly").prop('readonly', true);
和
$(".readonly").prop('readonly', false);
答案 2 :(得分:0)
您的代码正常运行。它实际上正在删除该类。但是,窗口小部件已经存在,因此您不能只删除该类。尝试将removeClass行更改为:
$("#pr_date").datepicker( "destroy" );
$("#gss_date").datepicker( "destroy" );