Javascript JS检查值是否存在

Javascript JS检查值是否存在,javascript,Javascript,由于某些原因,我的JS没有像我想象的那样做出反应。 页面加载时,“提交”按钮被禁用 当在基准字段中输入en值时,应更改类别并启用提交按钮。两者都没有发生 这似乎是一个标准代码,但仍然是一个问题 window.onload=function(){ document.getElementById('form_submit')。disabled=true; } 函数验证(){ if(document.getElementById('datum')。值==false){ document.getEle

由于某些原因,我的JS没有像我想象的那样做出反应。 页面加载时,“提交”按钮被禁用

当在基准字段中输入en值时,应更改类别并启用提交按钮。两者都没有发生

这似乎是一个标准代码,但仍然是一个问题

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这样的过时浏览器中,尽管它可以是多填充的;请参阅多填充的链接。

我已将您的代码块转换为堆栈片段。当我在字段中键入时,它会启用按钮。您能否澄清问题所在?如何隐藏按钮?您的示例中没有隐藏或显示按钮的内容。