Javascript 当两个日期选择器字段具有值时激活按钮

Javascript 当两个日期选择器字段具有值时激活按钮,javascript,jquery,jquery-ui,datepicker,Javascript,Jquery,Jquery Ui,Datepicker,我的问题源于 我想禁用提交按钮,直到用日期选择器填充两个输入。我在使用standart文本输入时没有遇到问题,但我的日期选择器无法使用。我强烈怀疑这是关于约会挑选者的身份证 首先是一个没有日期选择器的例子。那我想对约会挑肥拣瘦的人做些什么 文本输入工作时: 正文: <form method=post> <input type="text" id='first_name'> <input type="text" id='second_name'> <inp

我的问题源于

我想禁用提交按钮,直到用日期选择器填充两个输入。我在使用standart文本输入时没有遇到问题,但我的日期选择器无法使用。我强烈怀疑这是关于约会挑选者的身份证

首先是一个没有日期选择器的例子。那我想对约会挑肥拣瘦的人做些什么

文本输入工作时:

正文:

<form method=post>
<input type="text" id='first_name'>
<input type="text" id='second_name'>
<input type="submit" value="Submit" id="submit" disabled>
<form method=post>
<input type="text" id='datepicker1'>
<input type="text" id='datepicker2'>
<input type="submit" value="Submit" id="submit" disabled>
JQuery:

<script>
$(':text').keyup(function() {
if($('#first_name').val() != "" && $('#second_name').val() != "") {
   $('#submit').removeAttr('disabled');
} else {
   $('#submit').attr('disabled', true);   
}
});</script>
<script>
$(':text').keyup(function() {
if($('#datepicker1').val() != "" && $('#datepicker2').val() != "") {
   $('#submit').removeAttr('disabled');
} else {
   $('#submit').attr('disabled', true);   
}
});</script>
在日期选择器不工作的情况下:

负责人:

<script>
$(function() {
    $( "#datepicker1" ).datepicker({ dateFormat: 'dd/mm/yy' ,  minDate: new Date(2016, 04 - 1, 21), maxDate : new Date(2016, 05 - 1, 04)});
    $( "#datepicker2" ).datepicker({ dateFormat: 'dd/mm/yy' ,  minDate: new Date(2017, 04 - 1, 21), maxDate : new Date(2017, 05 - 1, 04)});
</script>
正文:

<form method=post>
<input type="text" id='first_name'>
<input type="text" id='second_name'>
<input type="submit" value="Submit" id="submit" disabled>
<form method=post>
<input type="text" id='datepicker1'>
<input type="text" id='datepicker2'>
<input type="submit" value="Submit" id="submit" disabled>
JQuery:

<script>
$(':text').keyup(function() {
if($('#first_name').val() != "" && $('#second_name').val() != "") {
   $('#submit').removeAttr('disabled');
} else {
   $('#submit').attr('disabled', true);   
}
});</script>
<script>
$(':text').keyup(function() {
if($('#datepicker1').val() != "" && $('#datepicker2').val() != "") {
   $('#submit').removeAttr('disabled');
} else {
   $('#submit').attr('disabled', true);   
}
});</script>
编辑

正如oldPadawan所说,当您将日期选择器初始化为chekc时,请使用onSelect:

(function(){
   $( "#datepicker1" ).datepicker({ dateFormat:'dd/mm/yy',minDate: new 
      Date(2016,04 - 1, 21), maxDate : new Date(2016, 05 - 1, 04),onSelect: 
        function(date) {
           checkDatePicker();
        }});
    $( "#datepicker2" ).datepicker({ dateFormat: 'dd/mm/yy' ,  minDate: new 
     Date(2017, 04 - 1, 21), maxDate : new Date(2017, 05 - 1, 04),onSelect: 
        function(date) {
           checkDatePicker();
        }});    
})();

function checkDatePicker(){
    if($('#datepicker1').val() != "" && $('#datepicker2').val() != "") {
        $('#submit').removeAttr('disabled');
    } else {
        $('#submit').attr('disabled', true);   
    }
}
编辑

正如oldPadawan所说,当您将日期选择器初始化为chekc时,请使用onSelect:

(function(){
   $( "#datepicker1" ).datepicker({ dateFormat:'dd/mm/yy',minDate: new 
      Date(2016,04 - 1, 21), maxDate : new Date(2016, 05 - 1, 04),onSelect: 
        function(date) {
           checkDatePicker();
        }});
    $( "#datepicker2" ).datepicker({ dateFormat: 'dd/mm/yy' ,  minDate: new 
     Date(2017, 04 - 1, 21), maxDate : new Date(2017, 05 - 1, 04),onSelect: 
        function(date) {
           checkDatePicker();
        }});    
})();

function checkDatePicker(){
    if($('#datepicker1').val() != "" && $('#datepicker2').val() != "") {
        $('#submit').removeAttr('disabled');
    } else {
        $('#submit').attr('disabled', true);   
    }
}
我猜问题在于keyup。通常,当您从日期选择器中选择日期时,不会调用keyup

当您在datepicker文本字段中手动插入日期时,它将起作用。尝试将更改与keyup事件一起用作

希望这有帮助…

我想问题在于keyup。通常,当您从日期选择器中选择日期时,不会调用keyup

当您在datepicker文本字段中手动插入日期时,它将起作用。尝试将更改与keyup事件一起用作


希望这有帮助…

如果您使用console.log$'datepicker1.val,它是否等于?keyup事件仅发送到具有焦点的元素。在这里,我相信是日期选择器,而不是输入。如果您使用console.log$'datepicker1.val,则可能值得在Select上检查内置的datepicker,它是否等于?keyup事件仅发送到具有焦点的元素。在这里,我相信是日期选择器,而不是输入。可能值得检查datepicker内置的onSelect您可以查看您的答案并删除不起作用的部分:我会,谢谢您的洞察力,我很确定这也会起作用,但我只能接受一个答案。谢谢大家:你们可以回顾一下你们的答案并删除不起作用的部分:我会,谢谢你们的洞察力,我很确定这也会起作用,但我只能接受一个答案。谢谢,伙计们,这很有帮助是的!谢谢:是的!谢谢:D