6

我正在寻找一个简单的解决方案来阻止登录表单提交空输入字段。表单的代码如下。如果可能的话,我想使用一个简单的 Javascript 解决方案。

<form id="login" method="post" action=""> 
    <input type="text" name="email" id="email" /> 
    <input type="password" name="pwd" id="pwd" /> 
    <button type="submit" id="submit">Login</button>
</form>     

如果可能的话,我还想更改空白字段的边框。

提前致谢。

4

3 回答 3

9

带有虚拟检查的示例代码:

<script type="text/javascript">
function checkForm(form) {
    var mailCheck = checkMail(form.elements['email']),
        pwdCheck = checkPwd(form.elements['pwd']);
    return mailCheck && pwdCheck;
}

function checkMail(input) {
    var check = input.value.indexOf('@') >= 0;
    input.style.borderColor = check ? 'black' : 'red';
    return check;
}

function checkPwd(input) {
    var check = input.value.length >= 5;
    input.style.borderColor = check ? 'black' : 'red';
    return check;
}
</script>

<style type="text/css">
#login input {
    border: 2px solid black;
}
</style>

<form id="login" method="post" action="" onsubmit="return checkForm(this)"> 
    <input type="text" name="email" id="email" onkeyup="checkMail(this)"/> 
    <input type="password" name="pwd" id="pwd" onkeyup="checkPwd(this)"/> 
    <button type="submit" id="submit">Login</button>
</form>
于 2009-07-25T21:06:56.473 回答
3

可能的方法:

  • 将动作设置为#
  • 将处理程序添加到提交按钮或onsubmit表单的
  • 如果文本字段不为空,则更改表单的操作

编辑:为了使这甚至适用于非 javascript 用户,#在页面加载时插入 -action。

于 2009-07-25T18:58:02.007 回答
2

为了保持最小,我会使用:

<form id="login" method="post" action="" onSubmit="if (this.email.value == '' || this.pwd.value == '') {return false;}">

授予 - 不会指出用户有什么问题,但可以解决问题。

于 2012-02-23T14:49:10.253 回答