JavaScript if语句不起作用

时间:2012-02-28 15:42:30

标签: javascript

我需要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)不起作用。请帮忙!

3 个答案:

答案 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...