【问题标题】:Javascript with html form validation not working带有html表单验证的Javascript不起作用
【发布时间】:2014-02-14 09:09:34
【问题描述】:

我正在尝试使用简单的 javascript 脚本验证表单,但是它不起作用,谁能告诉我我的代码有什么问题? (抱歉我的含糊问题)

JS代码:

<script type="text/javascript">
function validation()
{                                 
    var fName=document.forms["teacherReg"]["firstname"].value;
    var lName=document.forms["teacherReg"]["lastname"].value;
    var uName=document.forms["teacherReg"]["username"].value;
    var pWord=document.forms["teacherReg"]["password"].value;
    var cPWord=document.forms["teacherReg"]["confirmpassword"].value;

    if (fName="" || lName="" || uName="" || pWord="")
    {
        alert("Not a valid entry");
        return false;
    }

}
</script>

html 表单:

<form name="teacherReg" action="" method="POST" onsubmit="return validation();">
    1. First name:
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    2. Last name:<br/><input type="text" name="firstname" id="firstname" />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <input type="text" name="lastname" id="lastname" /><br/><br/>                             
    3. Desired Username:
    <br/><input type="text" name="username" id="username" /><br/><br/>
    4. Desired Password:
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    5. Confirm Password:<br/><input type="password" name="password" id="password" />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <input type="password" name="confirmpassword" id="confirmpassword" /> <br/><br/>
    <center><input type="submit" value="Register" name="submitbutton" class="button" /></center>
</form>

如果“fName、lName、uName、pWord”中的任何一个字段为空,我希望它返回 false,但它总是返回 true

【问题讨论】:

  • 你不应该使用大写 HTML (&lt;SCRIPT&gt;)
  • 您应该告诉我们您的预期和发生了什么?为什么你认为它不起作用?等等。
  • @Vadorequest you shouldn't html 不区分大小写
  • @user689 编辑有问题

标签: javascript html forms validation


【解决方案1】:

问题是您将=(赋值运算符)运算符与==(比较运算符)混淆了:

if (fName = "" || lName = "" || uName = "" || pWord = "") {

应该是

if (fName == "" || lName == "" || uName == "" || pWord == "") {

固定演示:http://jsfiddle.net/49xDH/

【讨论】:

    【解决方案2】:

    这就是问题所在:

     if (fName=="" || lName=="" || uName=="" || pWord=="")
    

    【讨论】:

      【解决方案3】:

      = 是赋值运算符,== 是比较运算符。使用== 比较值。

      【讨论】:

        【解决方案4】:

        使用比较运算符==,而不是赋值运算符=

        【讨论】:

        • 你不应该复制已经给出的答案而没有任何附加价值
        • 是的,当我开始打字时,已经发布了一个答案。这不是我的错。对不起兄弟..
        【解决方案5】:

        请尝试使用 ID 而不是表单对象。

        function validation(){
            var username = document.getElementById('username').value;
            // etc.
        }
        

        【讨论】:

        • 您的验证似乎也有误。 if (!fName || !lName || !uName || !pWord)
        • @Vadorequest :这个答案与问题无关
        • 使用ID比使用文档形式更好。干净的。他的代码缩进很严重,难以理解,并且没有遵循 stackoverflow 的表示规则。
        猜你喜欢
        • 1970-01-01
        • 2012-06-22
        • 2012-02-08
        • 2011-11-30
        • 1970-01-01
        • 1970-01-01
        • 2021-08-28
        • 2016-07-28
        • 1970-01-01
        相关资源
        最近更新 更多