【问题标题】:jQuery DatePicker Update Options based on Radio Button Selection基于单选按钮选择的 jQuery DatePicker 更新选项
【发布时间】:2023-03-09 18:46:01
【问题描述】:

我试图让 jquery 日期选择器在选择不同的单选按钮时进行更新。

<div style="padding-bottom: 50px;">
    <label>Location: </label>
    <input type="radio" name="locate" value="Internal">Internal
    <input type="radio" name="locate" value="External">External
</div>
<div>
    <label>Due Date: </label>
    <input type="text" name="dueDate" id="dueDate" size="25" placeholder="Please Enter A Due Date" autocomplete="off" readonly="true">
</div>

jQuery 可以工作,但它不会在每次单击新单选按钮时更新 datePicker。

var locate = null;
$("input[name='locate']").click(function() {
    locate = this.value;

    if (locate == "Internal") {
        $( "#dueDate" ).datepicker( { minDate: '-6M', maxDate: '+6M' });
        alert("Internal");
    } else {
        $( "#dueDate" ).datepicker( { minDate: -0, maxDate: '+6M' });
        alert("External");
    }
});

【问题讨论】:

    标签: javascript jquery datepicker


    【解决方案1】:

    您没有正确检索单选按钮的选中值。尝试更改您的if 条件,如下所示。

     if ($("input[name='locate']:checked").val() == 'Internal'){
        $( "#dueDate" ).datepicker( { minDate: '-6M', maxDate: '+6M' });
     }
     else {
        $( "#dueDate" ).datepicker( { minDate: -0, maxDate: '+6M' });
     }
    

    更新 1: 使用 destroy 销毁日期选择器并在单选按钮的选项更改时重新创建它。这是完整的代码。链接到工作DEMO

     $("input[name='locate']").click(function() {
        locate = this.value;
        var dateField = $('#dueDate');
    
     if ($("input[name='locate']:checked").val() == 'Internal'){
         dateField.datepicker('destroy');
         dateField.datepicker( { minDate: '-6M', maxDate: '+6M' });
     }
     else {
         dateField.datepicker('destroy');
         dateField.datepicker( { minDate: -0, maxDate: '+6M' });
     }
    
    });
    

    When you choose Internal you'll be able to go back upto 6 months and when Extrenal is chosen then it's from the current date.

    【讨论】:

    • 我实现了您提到的内容,并且当我更改单选按钮时更新日期选择器时它仍然不会更新。我必须每次刷新页面才能更新。
    • @pptaszek1990 好的,用完整的代码和演示页面的链接编辑了我的答案。
    • 太棒了!工作得很好!感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 2018-10-11
    • 2021-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多