这是一个example.html文件
<form name="test1" onsubmit="return formValidate();" action="test.html" method="post">
<input type="text" name="name"/>
<input type="submit" value ="Submit"/>
这是一个html文件的代码,其中有一个文本字段和一个提交按钮 下面的代码是test.html的代码,其中表单在成功验证后继续进行。
<body>
<p>hii </p>
</body>
我验证表单的javascript函数如下:formValidate.js
function formValidate(){
var uname=document.test1.name;
if(alpha(uname))
{
}
return false;
}
function alpha(uname){
var pattern=/(?![0-9]*$)[a-zA-Z0-9]+$/;
if(uname.value.match(pattern))
{
return true;
}
else
{
alert("Invalid input: only numeric not accepted");
uname.focus();
return false;
}
}
这是我的验证码,如果它返回false,它应该抛出一条警告消息,说明输入无效。这工作正常。但是当它返回false时我希望表单不会被提交到下一页。 我该怎么做?
答案 0 :(得分:0)
试试这个
<form name="test1" action="test.html" methos="post" onsubmit="return formValidate();">
<input type="text" name="name"/>
<input type="submit" value ="Submit"/>
</form>
function formValidate()
{
var uname=document.test1.name;
var pattern=/(?![0-9]*$)[a-zA-Z0-9]+$/;
if(uname.value.match(pattern))
{
return true;
}
else
{
alert("Invalid input: only numeric not accepted);
uname.focus();
return false;
}
}
答案 1 :(得分:0)
添加到onsubmit事件:
<form onsubmit="return formValidate(event);"
您的代码中存在语法错误。我修好了他们,试试这个:
function formValidate(e){
var uname = document.test1.name;// fix - to =
if(alpha(uname)) {
//some code here?
} else {
e.preventDefault();
return false;
}
}
function alpha(uname){
var pattern = /(?![0-9]*$)[a-zA-Z0-9]+$/;//remove *
if(uname.value.match(pattern)) {
return true;
} else {
alert("Invalid input: only numeric not accepted);
uname.focus();
return false;
}
}
答案 2 :(得分:0)
var uname = document.getElementsByName('name');
if (alpha(uname[0]))
{
return true;
}else{
return false;
}