为什么此代码不会生成任何警报消息

时间:2016-04-06 15:50:11

标签: javascript html

这里我写了一些用于在html和javascript

中对表单进行验证的内容
<!DOCTYPE html>
<html>
<body>
<form name="registration">
<input style="font-size:16px;" type="text" name="Name" placeholder="Full Name" onchange="checkName()" required />
</form>
<script>
function checkName()  
{   
    var uname=document.registration.Name.value;
    var letters = /^[A-Za-z]+$/;  
    if(uname.value.match(letters))  
    {   
                alert('fg');
    }  
    else  
    {  
        alert('Username must have alphabet characters only');  
        //uname.focus();  
    }  
}
</script>

</body>
</html>

请说明它无法正常工作的原因?

2 个答案:

答案 0 :(得分:1)

问题是你试图获得价值属性TWICE。像这样:

var uname=document.registration.Name.value;

if(uname.value.match(letters))

您的uname变量已包含该值,因此您无需再次获取该值。将您的if语句更改为此...

if (uname.match(letters))

它运作得很好:)。

答案 1 :(得分:0)

onchangeinput type = "text"一起使用非常罕见 onchange事件通常仅在您离开(blur)控件后才会发生。 onchange主要与select元素的更改相关联。 对于您的情况,最好还使用keydown, keyupkeypress事件。

HTML

<input style="font-size:16px;" type="text" name="Name" placeholder="Full Name" onkeyup="checkName()" required />

Jsfiddle