2015-04-07 82 views
-1

我看着我的代碼,並改變它,一切都看起來好了我只是不明白爲什麼它不工作!當我在瀏覽器中打開它並輸入電話號碼並按下按鈕時,什麼都不會發生。它不會像我想要的那樣提醒我。這個驗證碼爲什麼不起作用?

<html> 
<head> 
<title>Phone Number Validation</title> 
</head> 
<body> 
<script language="javascript"> 
window.onload=function(){ 
    document.getElementById("valButton".onclick=validateIt; 
} 

function validateIt(){ 
    var phoneno = /^\d{10}$/; 
    if((inputtxt.value.match(phoneno)) 
     { 
    alert("Yay it's a phone number!");  
    return true; 
     } 
     else 
     { 
     alert("Not a valid number"); 
     return false; 
     } 
} 
</script> 
<p>Phone Number Validation:</p> 
<p>Enter a phone number here:<br> 
    <input type="text" size=30 id="phoneno" /><br> 
    <input type="button" value="Validate" id="valButton" /> 
</p> 
</body> 
</html 
+0

爲什麼Java標籤?這個問題與Java編程有什麼關係?我刪除了這個標籤,如果錯誤請糾正我。 –

+4

它將如何工作,該功能永遠不會被調用? – adeneo

回答

0

問題:

1的功能不會被調用

2 - 該函數具有語法錯誤

function phonenumber(inputtxt) { 
    var pattern = "/^\d{10}$/", 
     phoneno = new RegExp(pattern); 
    if (inputtxt) { 
    if(inputtxt.match(phoneno)) { 
     return true; 
     } else { 
     alert("message"); 
     return false; 
     } 
    } 
} 
//Using jQuery for DOM manipulation you can execute the function on validate button click 
$('#valButton').on('click', function() { 
    var phoneInputValue = $('#phoneno').val(); 
    phonenumber(phoneInputValue); 
}); 

這裏簽出固定代碼: https://jsfiddle.net/au7aft0k/2/

1

添加"onblur=phonenumber()"您輸入,觸發調用函數時控制離開輸入(點擊或標籤的距離)。

0

你寫的函數永遠不會被執行。您需要將事件處理程序添加到按鈕和/或輸入本身。最簡單的方法是在DOMContentLoaded事件觸發後(DOM已被解析)。

var btn = document.getElementById('valButton'); 
btn.addEventListener('DOMContentLoaded', function(){ 
    var txt = document.getElementById('phoneno').value; 
    if (phonenumber(txt)) { 
    alert('Test passed. Do stuff here'); 
    } else { 
    alert('Test failed!!'); 
    } 
}, false); 

同樣,如果你想要的人離開你可以使用輸入字段後自動檢查:

var input = document.getElementById('phoneno'); 
input.addEventListener('blur', function(){ 
    if (phonenumber(input.value)) { 
    alert('Test passed. Do stuff here'); 
    } else { 
    alert('Test failed!!'); 
    } 
}, false);