2011-03-06 49 views
0

我真的不知道为什么这个验证不起作用。表单验证问题,代码不起作用

这是我的html:

<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<script type='text/javascript' src="scripts.js"></script> 
<title>Test Page!</title> 
</head> 

<body> 
<form onsubmit ="return validateFormOnSubmit(this)" name="myForm" action = "testForm.html"> 
<input name="textField" type="text" value="" size="50" id= "textfield" /> <br /> 
<input name="button" type="submit" value="Submit"/> 
</form> 
</body> 
</html> 

,这是我的JavaScript文件:

function isURL(fld){ 
    var error = ""; 
    var regex = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/ 
    if(regex.test(fld.value)){ 
     error = "No URL's Allowed!"; 
    } 
    else{ 
     error = ""; 
    } 
    return error; 
} 

function validateFormOnSubmit(myForm) { 
var reason = ""; 

    reason += isURL(myForm.textField); 


    if (reason != "") { 
    alert("there's something wrong: \n" + reason); 
    return false; 
    } 

    return true; 
} 

感谢您的帮助。

更新:是真正需要的操作吗? testpage.html只是一个空的html文件!

更新2:问题是我没有看到任何消息或警报。

+0

到底是什么问题?什么或不会发生? – Pointy 2011-03-06 18:21:45

+0

我没有看到任何消息或提醒。 – Loolooii 2011-03-06 18:25:25

回答

-1

看起来你传递的是表单,而不是你想要验证的字段。

+0

他们正在传递他们想要验证的表单,这是完全有效的 – cusimar9 2011-03-06 18:24:07

+0

在validateFormOnSubmit中,我传递了表单,但后来我在这行中有:isURL(myForm .textField),所以它现在是textField .. – Loolooii 2011-03-06 18:24:33

1

它工作正常,你scripts.js中的文件加载不正确或旧版本被缓存在浏览器

+0

为什么scripts.js没有正确加载?我只是清空缓存,这不是问题。 – Loolooii 2011-03-06 18:40:24

+0

在你的代码中添加内联,你会看到它的作品,我试过了。必须是该文件不存在或它在另一个目录 – cusimar9 2011-03-06 18:45:49

+0

我把代码放在.html文件中,它仍然不起作用!我正在使用wamp服务器,我试图重新启用离线和在线,这也没有帮助。 – Loolooii 2011-03-06 18:57:49