[英]Can't get JavaScript SSN Form Validation to work
我是JS的新手,並且當有人在某個字段中輸入SSN號碼時嘗試得到它,它會給他們一個警告,告訴他們不要在那里放一個SSN號碼。
HTML:
<form name="card" action="#">
<input type="text" name="field" class="name social" size="60" placeholder="First and Last Name">
<input type="text" name="field" class="phone social" size="60" placeholder="Phone Number">
<input type="text" name="field" class="email social" size="60" placeholder="Email(name@example.com)">
<select class="select">
<option value="My card has not yet arrived">My card has not yet arrived
<option value="Direct Deposit">Direct Deposit
<option value="Suggest a Card">Suggest a Card
<option value="Issues with CARD.com">Issues with CARD.com
<option value="Other">Other
</select>
<textarea name="field" class="text social " cols="60" rows="5" placeholder="How can we help you?"></textarea>
<input type"submit" name="submit" class="subBtn" value="Submit" onclick="warnCC(document.card.field)">Submit</input>
</form>
JS:
<script>
function warnCC()
{
var ssn = document.getElementsByTagName("input");
// document.getElementsByClassName("social");
var pattern = /^[0-9]{3}\-?[0-9]{2}\-?[0-9]{4}$/;
if (ssn.value.match(pattern))
{
return true;
alert("Please Do Not Enter SSN Info Into This Form");
}
else
{
return false;
alert("yay!")
}
}
</script>
任何關於我出錯的幫助都會非常有幫助。 如果有人能就此提出建議,我也更喜歡在“onfocusout”上完成。
getElementsByTagName
和getElementsByClassName
都返回元素列表 。 該列表沒有value
屬性。 每個列表上的項目具有value
屬性,但不在名單。
您需要循環遍歷輸入列表並根據需要處理每個輸入,例如:
var list = /*...get the list using either method you have in your code...*/;
var index, input;
for (index = 0; index < list.length; ++index) {
input = list[index];
// input.value will be the value of this particular input
}
旁注: querySelectorAll
比getElementsByClassName
有更好的支持(例如,IE8有它,但不是getElementsByClassName
),所以如果你想使用類獲取列表,你最好用:
var list = document.querySelectorAll(".the-class-here");
您還應該在從函數返回之前執行alert()...如果您希望顯示alert()對話框。
我調整了你的功能。 你可以在這里看到它不作為: http : //jsfiddle.net/tBqP2
function warnCC() {
var formElements = document.getElementsByTagName("input");
for (var k in formElements) {
// document.getElementsByClassName("social");
var pattern = /^[0-9]{3}\-?[0-9]{2}\-?[0-9]{4}$/;
if (formElements[k].value.match(pattern)) {
alert("Please Do Not Enter SSN Info Into This Form");
return false;
}
}
return true;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.