2016-12-31 24 views
1

我正在嘗試使用JavaScript來檢測textarea中的數字數量,但它沒有顯示任何內容。爲什麼我的JavaScript驗證器不工作?

var number = document.getElementById("textarea"); 
 
var length = number.length; 
 
if (length != 16) { 
 
    document.getElementById("wrongOrRight").innerHTML = "Wrong credit card number! Please try again!"; 
 
} 
 
else if (length = 16) { 
 
    document.getElementById("wrongOrRight").innerHTML = "Correct number!"; 
 
} 
 
else { 
 
    document.getElementById("wrongOrRight").innerHTML = "Just to see if it works"; 
 
}
textarea { 
 
    border: 2px solid #0095FF; 
 
    border-radius: 7px; 
 
} 
 
h4 { 
 
    color: red; 
 
}
<!DOCTYPE html> 
 
<html lang="en"> 
 
<head> 
 
    <meta charset="UTF.8"> 
 
    <title>Validator</title> 
 
    <link rel="stylesheet" type="text/css" href="css.css" /> 
 
    <script src="javascript.js"></script> 
 
</head> 
 
<body> 
 
<textarea id="textarea" placeholder="Enter your credit card number here for chocolate! No scam!" cols="50" rows="1" autofocus="autofocus"></textarea> 
 
<h4 id="wrongOrRight"></h4> 
 
</body> 
 
</html>

+0

這是一個驗證,而不是認證。 –

+0

您沒有事件偵聽器來觸發任何函數。此外,您的腳本不在函數中,因此它將在頁面加載時運行。 – NewToJS

回答

1

這是一個正確的腳本,做你想什麼來實現: jsfiddle

你有一些問題。就像NewToJs在評論中提到的那樣,您沒有將代碼鏈接到textarea的事件。

爲了達到這個目的,您還需要將您的代碼轉換爲JavaScript函數。像這樣:

function validate() { 
... //your code 
} 

<textarea id="textarea" placeholder="Enter your credit card number here for chocolate! No scam!" cols="50" rows="1" autofocus="autofocus" onkeyup="validate()"> 

另一個問題是,你比較了textarea的長度,而不是textarea的值。以下是你需要做什麼: var number = document.getElementById("textarea").value;

接下來,當你比較數的長度爲16,你做

} else if (length = 16) { 

你忘了=(一個在JavaScript中比較==)。我相信這是一個錯字,但它在我的小提琴中是固定的。

0

您必須添加:

onChange="ChecktheInput();" 

到您文本區域輸入,在用於功能碼的Java腳本:

function ChecktheInput() { 
// your validation code 
} 
相關問題