我需要javascript的帮助。这是我的问题:
<script type="text/javascript">
function validateForm() {
var ime = document.getElementById('ime');
var prezime = document.getElementById('prezime');
var telefon = document.getElementById('telefon');
var datum = document.getElementById('datum');
var patt1 = /^\+[0-9]+$/;
if (telefon.match(patt1) == null) {
alert("Niste dobro uneli broj");
}
if (ime.value.length == 0 && prezime.value.length == 0 && telefon.value.length == 0 && datum.value.length == 0) {
alert("Niste dobro uneli podatke!");
return false;
}
}
</script>
<form action="popup.php" method="post" onsubmit="return validateForm()">Vase ime:
<input type="text" name="ime" id="ime"> <br/>
Vase prezime:
<input type="text" name="prezime" id="prezime"> <br/>
Broj telefona:
<input type="text" name="telefon" id="telefon"> <br/>
Datum rodjenja:
<input type="text" name="datum" id="datum"> <br/>
<input type="submit" name="save" value="sacuvaj">
</form>
我不明白为什么telefon.match(patt1)==null)
不起作用。请帮忙!
答案 0 :(得分:3)
原因是因为您无法将正则表达式应用于HTML元素,您可以将其应用于其值:
var telefon = document.getElementById('telefon').value;
然后你可以在var telefon上执行你的正则表达式
答案 1 :(得分:0)
telefon是一个DOM元素,而不是字符串
telefon.value可以匹配
答案 2 :(得分:0)
telefon
中存储的对象将是一个DOM元素(例如HTMLDivElement
),它没有方法“匹配”。您需要在匹配之前从该元素中提取相关文本。你如何做到这将取决于确切的DOM类型:
if (telefon.value.match(patt1) == null) // For form elements...
if (telefon.innerHTML.match(patt1) == null) // For "plain" DOM elements...