如果特定字段(包括datepicker)在jQuery中为空,请禁用“保存”按钮

时间:2015-09-22 14:58:25

标签: javascript jquery html

只要三个特定字段为空,我就会尝试禁用“保存”按钮。一个字段是一个简单的输入文本框,另一个是下拉列表,最后一个是日期选择器。

这是我到目前为止所做的:

HTML:

<select id="mySelect">
<option value="0">A</option>
<option value="1">B</option>
<option value="2">C</option>
</select>
<input id="summary"></input>
<input id="myDate"></input>
<input type="button" id="save" value="Save Me" disabled="disabled"></input>

jQuery的:

$('#myDate').datepicker();
//$('#save').prop("disabled", true);

$('#mySelect, #summary,#myDate').on('change', function () {

if ($('#mySelect').find('option:selected').val() === "0" && $('#summary').val().length < 10 && 
//$('#myDate').datepicker("getDate") === null) { //---I tried this also
$('#myDate').val() === '') {
    //  $('#save').prop("disabled", false); //---I tried this also
    $('#save').removeAttr("disabled");

} else {
    $('#save').prop("disabled", true);
}

});

我也试过keyup,但没有运气。有什么建议?谢谢!

更新:Fiddle

2 个答案:

答案 0 :(得分:1)

看起来你的向后比较了。您当前正在删除这些条件下的已禁用属性:

if ($('#mySelect').find('option:selected').val() === "0" && $('#summary').val().length < 10 && $('#myDate').val() === '')

尝试将其更改为:

if ($('#mySelect').find('option:selected').val() != "0" && $('#summary').val().length != 0 && $('#myDate').val() != '')

JSFiddle

答案 1 :(得分:1)

$("#myDate").datepicker({
  onSelect: function(dateText) {
      alert('ok');
    if ($('#mySelect').val()!= "" && $('#summary').val()!= "" && $('#myDate').val() != ""){

        $('#save').removeAttr("disabled");
    } else {

        $('#save').prop("disabled", "disabled");
    }
  }
});

on datepicker更改事件将无效使用此验证