2016-05-23 126 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