表单验证适用于chrome但不适用于Firefox

时间:2012-01-19 11:49:48

标签: javascript html validation

我在下面有一个表单并验证

html code

<form name="rt_form" id="rt_form" method="post" onSubmit="return validate();">
    <input type="text" value="NAME" name="fname">
    <input type="text" value="EMAIL" name="femail">
    <input type="text" value="CONTACT NUMBER" name="fphone">
    <textarea name="fMESSAGE" cols="44" rows="8" id="MESSAGE">
</form>

Javascript code

function validate() {
alert("you have clicked");
    if (document.rt_form.fname.value.length < 1 || document.rt_form.fname.value == "NAME") {
        alert("Enter Name");
        return false;
    }

    else if (!/^\S+@\S+\.\w+$/.test(document.rt_form.femail.value)) {
        alert("Not a valid e-mail address");
        return false;
    } 

    else if (!/^\d+$/.test(document.rt_form.fphone.value)) {
        alert("Enter valid Number");
        return false;
    }

    else if (document.rt_form.fMESSAGE.value.length < 1 || document.rt_form.fMESSAGE.value="MESSAGE") {
        alert("Enter Message");
        return false;
    }
    else {
        return true;
    }

}

当我在Chrome中运行此代码时,它运行良好,并且在Firefox中打开时验证无效...

甚至在firefox中单击时也没有显示警告框。

有没有添加兼容性的东西。

3 个答案:

答案 0 :(得分:3)

在文本框中验证消息时,您使用的是单个“=”。因此,您无法在FF中进行验证。

检查以下代码的实时版本:

http://jsfiddle.net/GMf8C/

注意:在FF8.0中测试

答案 1 :(得分:1)

如果条件

,您的错误会出错

document.rt_form.fMESSAGE.value="MESSAGE"

将此更改为

document.rt_form.fMESSAGE.value=="MESSAGE"

此帖子应该关闭

答案 2 :(得分:0)

Hello Friend纠正以下两行

Change this line
<textarea name="fMESSAGE" cols="44" rows="8" id="MESSAGE">

to 
<textarea name="fMESSAGE" cols="44" rows="8" id="MESSAGE"></textarea>

Then change the line

else if (document.rt_form.fMESSAGE.value.length < 1 || document.rt_form.fMESSAGE.value="MESSAGE")

to 

else if (document.rt_form.fMESSAGE.value.length < 1 || document.rt_form.fMESSAGE.value=="MESSAGE")

希望这能解决您的问题