2016-05-23 72 views
0

在我的脚本中,除了空输入的输出之外,一切正常。如何查找输入是否为空?

<input id="id1" type="number" max="100" min="40"> 

    <button onclick="count()">OK</button> 

    <p id="test"></p> 

<script>  

var inpObj = document.getElementById('id1'); 

    function count() { 
     if(inpObj.checkValidity() == false || inpObj.length === 0) { 
      document.getElementById('test').innerHTML = inpObj.validationMessage; 
     } else { 
      document.getElementById('test').innerHTML = "Input OK"; 
     } 
    } 

</script> 

我不知道为什么这不起作用。

谢谢。

+0

的价值是什么'inpObj.checkValidity'和'in pObj.validationMessage'?你是什​​么意思,它不工作?浏览器控制台中是否有错误? – gurvinder372

+0

我正在学习本教程,它是javascript验证api部分:http://www.w3schools.com/js/js_validation_api.asp – super11

回答

1

试试这个:

function count() { 
     if(inpObj.checkValidity() == false) { 
      document.getElementById('test').innerHTML = inpObj.validationMessage; 
     } else if(inpObj.value.length === 0) { 
      document.getElementById('test').innerHTML = "Empty" 
     } else { 
      document.getElementById('test').innerHTML = "Input OK"; 
     } 
    } 

参见:https://jsfiddle.net/Ldj170Lc/

+0

它现在正在工作,所以'validationMessage'不适用于空字符串。你需要特别为这种用法做一个'else if'语句。谢谢! – super11

0

试试这个:

长度应用于字符串而不是输入对象。 inpObj是HTML对象(输入)

if(inpObj.checkValidity() == false || inpObj.value.length === 0) { 
} 
+0

不,不工作。什么都没发生。 – super11

0

您应该使用inpObj.value.length代替inpObj.lengthhttps://jsfiddle.net/IA7medd/g7e0bLjc/

var inpObj = document.getElementById('id1'); 

    function count() { 
    if(inpObj.checkValidity() == false || inpObj.value.length === 0) { 
     document.getElementById('test').innerHTML = inpObj.validationMessage; 
    } else { 
     document.getElementById('test').innerHTML = "Input OK"; 
    } 
    } 
+0

在你的小提琴中,validationMessage没有被输出...... – super11

+0

它工作正常,只是尝试在输入上粘贴一个文本,并输出validationMessage –

+0

不,它不是。看到上面的正确答案。 :) – super11