当其他输入字段具有值时,禁用日期选择器

时间:2017-04-18 12:36:09

标签: jquery datepicker

我有两个输入字段,其中一个是日期选择器

我想只允许填写一个

当日期选择器被填满时,我成功锁定了另一个 但我不能做相反的事情

怎么做?

<label>Event Date (English)</label>
<input type="text" name="edateen" id="datepicker" class="edateen">
<br><br>
<label>Event Date (Arabic)</label>
<input type="text" name="edatear" id="edatear" placeholder="1438-04-18">

Jquery的

$(function(){
$("#datepicker").datepicker({dateFormat: 'yy-mm-dd'});
});

$(document).ready(function() { 

    $("#datepicker").keypress(function (e)
    {
        e.preventDefault();
    });

  $('input.edateen').on("change", function(){
          if($.trim($(".edateen").val())){
            $('#edatear').attr("disabled", "disabled");
          }else{
     $('#edatear').removeAttr('disabled'); 
    }  

  });

});

Fiddle

2 个答案:

答案 0 :(得分:0)

我发现您的选择器存在问题。请尝试使用此代码。

$("#edatear").on("keypress keyup",function(){
  if ($("#edatear").val() !== '')
        $("#datepicker").attr("disabled","disabled");
  else
    $("#datepicker").removeAttr("disabled");
});

答案 1 :(得分:0)

你有两个问题:

('#edatear').on("change", function () {

您应该添加$符号:

$('#edatear').on("change", function () {

因此,要禁用日期选择器,您应该替换:

 $('#datepicker').attr('readonly',false).datepicker();

为:

$('#datepicker').datepicker( "option", "disabled", true );

要正确停用。

要启用此功能,只需将true改为false

$('#datepicker').datepicker( "option", "disabled", false );

有一个工作示例:https://jsfiddle.net/f3w0vhtg/10/