禁用后无法启用datepicker字段

时间:2013-04-29 10:22:34

标签: jquery

如果单击“单向”复选框,我已编写以下代码以禁用行程中的返回日期字段。

问题是,它适用于jsFiddle,但不适用于输入字段是jQuery DatePicker字段,我希望它是。

$('#returndate_true').click(function(){
    $('#returndate').removeAttr("disabled");
    $('#returnflex').removeAttr("disabled");
});

$('#returndate_false').click(function(){
    $('#returndate').attr("disabled",true);
    $('#returnflex').attr("disabled",true);
});

<span><input type="radio" value="true" name="traveltype" id="returndate_true"><label for="returndate_true" class="collection_radio_buttons">Return-trip</label></span><span><input type="radio" value="false" name="traveltype" id="returndate_false"><label for="returndate_false" class="collection_radio_buttons">One-way</label></span>
                <input class="cdate" name="date_return" size="13" id="returndate" disabled="disabled" />
                <select id="returnflex" name="return_flex" disabled="disabled">
                    <option value="no flex">No Flexibility</option>
                    <option value="plusmin 1day">+/- 1 day</option>
                    <option value="plusmin 2days">+/- 2 days</option>
                    <option value="plusmin 3days">+/- 3 days</option>
                    <option value="same week">Same Week</option>
                </select></font></b>

Check out the demo here。 (将其剥离到必需品)。

有没有人有这方面的经验?

提前致谢, SH

1 个答案:

答案 0 :(得分:0)

只是快速查看一下代码,它不起作用的原因是因为代码不在$(document).ready()函数内部:

$(document).ready(function() {

    $('#returndate_true').click(function(){
        $('#returndate').removeAttr("disabled");
        $('#returnflex').removeAttr("disabled");
    });

    $('#returndate_false').click(function(){
        $('#returndate').attr("disabled",true);
        $('#returnflex').attr("disabled",true);
    });

    $('#returndate').datepicker();

});

这是first thing you learn about jQuery。将代码放在此函数中可确保在操作任何内容之前完全加载DOM。