Javascript JS检查值是否存在
由于某些原因,我的JS没有像我想象的那样做出反应。 页面加载时,“提交”按钮被禁用 当在基准字段中输入en值时,应更改类别并启用提交按钮。两者都没有发生 这似乎是一个标准代码,但仍然是一个问题Javascript JS检查值是否存在,javascript,Javascript,由于某些原因,我的JS没有像我想象的那样做出反应。 页面加载时,“提交”按钮被禁用 当在基准字段中输入en值时,应更改类别并启用提交按钮。两者都没有发生 这似乎是一个标准代码,但仍然是一个问题 window.onload=function(){ document.getElementById('form_submit')。disabled=true; } 函数验证(){ if(document.getElementById('datum')。值==false){ document.getEle
window.onload=function(){
document.getElementById('form_submit')。disabled=true;
}
函数验证(){
if(document.getElementById('datum')。值==false){
document.getElementById('div_datum')。className=“col-md-2输入组有警告”;
}否则{
document.getElementById('div_datum')。className=“col-md-2输入组已成功”;
document.getElementById('form_submit')。disabled=false;
}
}
数据工具箱
维斯图尔
此行:
if (document.getElementById('datum').value == false)
将在几个值上分支到附加的if
块(例如,如果我键入0,而不仅仅是当值为空时(因为“0”==false
奇怪地是true
)。对空值的更可靠检查是:
if (!document.getElementById('datum').value)
只有当值
为“
”时,才会出现分支(如果要清除前导空格和尾随空格,则可以或不可以将.trim()
添加到值。)
另外,我不得不注意到,您的validate
函数从未将disabled
设置为true
,仅将设置为false
。如果我键入某个内容,然后将其退格,会怎么样?您可能想再次禁用该按钮。因此:
function validate() {
if (document.getElementById('datum').value == false) {
document.getElementById('div_datum').className = "col-md-2 input-group has-warning";
document.getElementById('form_submit').disabled = true;
} else {
document.getElementById('div_datum').className = "col-md-2 input-group has-success";
document.getElementById('form_submit').disabled = false;
}
}
或者再进行一点重构:
function validate() {
var invalid = !document.getElementById('datum').value.trim();
document.getElementById('div_datum').className = "col-md-2 input-group " + (invalid ? "has-warning" : "has-success");
document.getElementById('form_submit').disabled = invalid;
}
注:ES 5.1(2011年6月)中增加了,因此它不存在于像IE8这样的过时浏览器中,尽管它可以是多填充的;请参阅多填充的链接。我已将您的代码块转换为堆栈片段。当我在字段中键入时,它会启用按钮。您能否澄清问题所在?如何隐藏按钮?您的示例中没有隐藏或显示按钮的内容。