只要三个特定字段为空,我就会尝试禁用“保存”按钮。一个字段是一个简单的输入文本框,另一个是下拉列表,最后一个是日期选择器。
这是我到目前为止所做的:
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
答案 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() != '')
答案 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更改事件将无效使用此验证