说明:字段的值在开头是YYYY-MM-DD。如果用户删除了值并且没有输入任何内容,则应禁用“ok”按钮。如果用户删除该值并键入新值,则应启用“ok”按钮。该代码仅适用于第二种情况。
function ChangeOkButton()
{
if(document.getElementById('fromDate').value == null)
{ document.getElementById('save').disabled = true; }
else {document.getElementById('save').disabled = false; }
}
<input type="text" name="fromDate" id="fromDate" value="YYYY-MM-DD" onkeypress="ChangeOkButton();"/>
这可能吗?
谢谢!
答案 0 :(得分:0)
该函数对于那种控制并不是非常有用,因为你可以使用'12345','foobar'或其他不同于实际值的值来覆盖该值。我想你想要从2000-01-01开始约会
function ChangeOkButton(field) {
var okbtt = document.getElementById('save');
if ((/^(YYYY\-MM\-DD|2\d{3}\-(0[1-9]|1[0-2])\-(0[1-9]|[12]\{d}|3[01]))$/).test(field.value)) {
okbtt.removeAttribute('disabled');
}
else {
okbtt.disabled = 'disabled';
}
}
,您的输入是
<input type="text" name="fromDate" id="fromDate" value="YYYY-MM-DD" onkeyup="ChangeOkButton(this);"/>
请注意我没有考虑每月的闰年或天数,这只是对用户输入的数据类型的更可靠控制。根据需要更改正则表达式
注意:考虑将'okbtt'变量放在函数外部以获得性能,否则每次调用此函数时都需要获取引用。可怕的。