Javascript 为什么此代码未生成任何警报消息
在这里,我写了一些用html和javascript对表单进行验证的代码Javascript 为什么此代码未生成任何警报消息,javascript,html,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>
<!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>
函数checkName()
{
var uname=document.registration.Name.value;
变量字母=/^[A-Za-z]+$/;
if(未指定值匹配(字母))
{
警报(“fg”);
}
其他的
{
警报('用户名必须只有字母字符');
//uname.focus();
}
}
请描述它不工作的原因?问题是您试图获取value属性两次。例如:
var uname=document.registration.Name.value;
if(uname.value.match(letters))
uname变量已包含该值,因此无需再次获取该值。将您的if语句更改为此
if (uname.match(letters))
它工作得很好:)使用
onchange
和input type=“text”
是非常少见的
onchange
事件通常仅在您离开(blur
)控件后发生。
onchange
主要与select
元素的更改相关。
对于您的情况,最好同时使用keydown、keydup
和keypress
事件
HTML
<input style="font-size:16px;" type="text" name="Name" placeholder="Full Name" onkeyup="checkName()" required />
您是否检查了控制台的错误?函数之后似乎有一个杂散的
}
。我做了一些更改,请重新检查它以什么方式“不起作用”?有什么事发生吗?是否有错误?它没有显示任何警报框右侧。您检查过开发者控制台中的错误了吗?这并不能回答他的问题。它不起作用。@Manodesra他的问题没有生成警报消息这个问题在他编辑并删除if块外的警报之前得到了回答。我猜您错过了这一部分&onchange不是我在回答中提到的文本的正确事件处理程序。谢谢,但它不起作用。问题是,他试图在已经获得value属性之后再获得value属性。你上面的小提琴也会犯同样的错误。鉴于此,您可能希望修改您的答案。不想表现得粗鲁。只是想帮忙:)