我坚持认为我认为是一个简单的PEBCAK错误.我在提交表单之前试图验证我的所有功能是否属实,但是无法想象我的生活有什么不对.以下是我的
javascript代码:
function checknewaccount(){ if(emailvalid()&& checkname() && passwordcheck()) { return true; } else{ return false; } } function emailvalid() { if(email condition) { return true; } else { return false; } } function checkname()) { if(name condition) { return true; } else { return false; } } function passwordcheck(){ if(password condition) { return true; } else { return false; } }
html如下:
<form id="newaccount" name="newaccount" method="post" onSubmit="accountcode.PHP"> <input type="text" id="email" onBlur="emailvalid()"/> <input type="text" id="username" onBlur="checkname()" /> <input type="password" id="password" onkeyup="passwordcheck()"/> <input type="submit" value="New" onClick="return checknewaccount()"/> </form>
当我点击“新建,没有任何反应,我知道accountcode.PHP没有运行,因为数据库端没有任何反应,并且没有报告错误.
总结一下,我的问题是checknewaccount()不起作用?它与我如何称呼它们有关吗?
我是javascript的新手,所以如果我完全关闭我的实现,我道歉.非常感谢你的帮助!
解决方法
你的表单语法错误了 – onsubmit =要调用的js函数的名称,action = url …
<form action="accountcode.PHP" id="newaccount" name="newaccount" method="post" onSubmit="return checknewaccount()"> <input type="text" id="email" onBlur="emailvalid()"/> <input type="text" id="username" onBlur="checkname()" /> <input type="password" id="password" onkeyup="passwordcheck()"/> <input type="submit" value="New"/> </form>
完全测试的代码:
<html> <head> <script type="text/javascript"> function checknewaccount() { return emailvalid() && checkname() && passwordcheck(); } function emailvalid() { var emailAddress = document.getElementById('email').value; return (emailAddress=='test'); } function checkname() { return true; } function passwordcheck() { return true; } </script> </head> <body> <form action="#" onsubmit="return checknewaccount();"> <input type="text" id="email" name="email"/> <input type="submit"/> </form> </body> </html>
如果文本框的值为test,则上述代码中的表单将仅提交
稍微好一点的实现是:
<html> <head> <script type="text/javascript"> function checknewaccount() { if(emailvalid() && checkname() && passwordcheck()) { return true; } else { document.getElementById('validation').innerHTML = 'Validation Failed!'; return false; } } function emailvalid() { var emailAddress = document.getElementById('email').value; return (emailAddress=='test'); } function checkname() { return true; } function passwordcheck() { return true; } </script> </head> <body> <div id="validation"></div> <form action="#" onsubmit="return checknewaccount();"> <input type="text" id="email" name="email"/> <input type="submit"/> </form> </body> </html>