我正在尝试验证我的表单,以便如果用户不输入用户名或密码,则不允许他登录网站。出于某种原因,当我同时输入用户名和密码字段并单击login时,login.html页面不会出现。有什么帮助吗?
<script>
window.onload = function(){
function handleinput(){
if(document.loginform.username.value == ""){
document.getElementById("usernameError").innerHTML = "You must enter a username";
return false;
}
if(document.loginform.password.value == ""){
document.getElementById("passwordError").innerHTML = "You must enter a password";
return false;
}
}
document.getElementById("loginform").onsubmit = handleinput;
}
</script>
<form id="loginform" name="loginform" method="post">
<div>
<label hidden> Username</label>
<input type= "text" class="text" placeholder="Username" title="Username" name="username">
<span id="usernameError"></span>
<label hidden> Password </label>
<input type= "password" class="text" placeholder="Password" title="Password" name="password">
<span id="passwordError"></span>
<a href="" class="anchor-float">Forgot password?</a>
</div>
<div class="button-container">
<a href="login.html" target="_blank"> <input type= "submit" value="Login" class="login"/>
</a>
<input type= "button" value="Sign up" class="login signup"/>
</div>
</form>
您已将Submit按钮包裹在一个a
指向的元素中login.html
,这是在表单提交后如何正确重定向的方法。由于事件冒泡和/或捕获,这还将导致处理事件的问题。
实际上,您尚未在form
标签中指定表单应将其数据发送到的位置:
<form id="loginform" name="loginform" method="post">
这(默认情况下)意味着表单会将其数据发送到当前页面(导致重新加载同一页面,但是在此更新的加载中可以访问表单数据)。
要将数据发送到其他页面/资源,表单需要具有一个action
属性,该属性指定到目标的路径:
<form id="loginform" name="loginform" method="post" action="login.html">
请参阅此有关提交表格的详细信息。
Stack Overflow的代码段环境不允许进行表单提交,但请查看此Fiddle,该Fiddle具有可正常使用的代码更新版本。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句