Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
表行在第二次单击时更新。表单验证javascript_Javascript_Html_Forms_Validation - Fatal编程技术网

表行在第二次单击时更新。表单验证javascript

表行在第二次单击时更新。表单验证javascript,javascript,html,forms,validation,Javascript,Html,Forms,Validation,我正在尝试使用javascript验证表单。文本字段嵌入在表行中。留下一个空白表行以显示警告(如“不能为空”)。当我在onsubmit上调用validateForm()方法时,警告出现在表行中并消失。当我第二次按下按钮时,警告将保留在html页面上。我不知道发生了什么事 function validateForm() { var warnmsg = checkNames(); document.getElementById("row1").innerHTML = warnmsg; } funct

我正在尝试使用javascript验证表单。文本字段嵌入在表行中。留下一个空白表行以显示警告(如“不能为空”)。当我在onsubmit上调用validateForm()方法时,警告出现在表行中并消失。当我第二次按下按钮时,警告将保留在html页面上。我不知道发生了什么事

function validateForm() {
var warnmsg = checkNames();
document.getElementById("row1").innerHTML = warnmsg;
}
function checkNames() {
var fname = document.getElementById("fname");
if (fname.value.length==0)
    return "Cannot be left blank";
else
    return "";
}

使用以下方法:

var warnmsg = checkNames;

必须返回false才能使页面不离开

            function validateForm() 
            {
                var warnmsg = checkNames();
                document.getElementById("row1").innerHTML = warnmsg;
                return !warnmsg.length >0;//if there is a warning message, return false
            }
然后以您的形式:

onsubmit="return validateForm()"
这是我的测试页面

<html>
    <head>
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
        <script>
            function validateForm() 
            {
                var warnmsg = checkNames();
                document.getElementById("row1").innerHTML = warnmsg;
                return !warnmsg.length >0;
            }
            function checkNames() 
            {
                var fname = document.getElementById("fname");
                if (fname.value.length==0)
                    return "Cannot be left blank";
                else
                    return "";
            }
        </script>
    </head>

    <body>
        <form onsubmit="return validateForm()">
                    <p id="row1"></p>
            <input type="text" id="fname" />
            <input type="submit" />
        </form>
    </body>
</html>

函数validateForm()
{
var warnmsg=checkNames();
document.getElementById(“row1”).innerHTML=warnmg;
return!warnmsg.length>0;
}
函数checkNames()
{
var fname=document.getElementById(“fname”);
if(fname.value.length==0)
返回“不能为空”;
其他的
返回“”;
}


我照你说的做了。第一次单击时,警告会突然出现并消失。当我第二次点击它时,警告会留在页面上。真的吗?真奇怪。当我尝试时,一切似乎都正常it@AmerSohail当您说消息第二次保留在页面上时,您是否调试了页面并确保调用了validateForm函数?如果我是你的话,我可能会开始进入这个页面。@AmerSohail听起来好像表单正在提交并刷新页面。检查是否已附加MikeB所示的侦听器。还应添加表的HTML源。