-3
<html>
    <head><script type="text/javascript">
     function pa(){
        var fname = document.getElementById('fname').value;
        var lname = document.getElementById('lname').value;
        var email = document.getElementById('email').value;
        if(fname==""||lname==""||email=="")
            alert("Please, Compelete the form...");}
        </script>
    </head> <body>
        <form onsubmit="pa()">
                E-mail Address*<input id="email" value="" name="email" type="text">
                First Name*<input id="fname" value="" name="fname" type="text">
                Last Name*<input id="lname" value="" name="lname" type="text">
                        <input type="submit" value="Register">
        </form>
    </body>
</html>

嗨,上面是我的代码,它导致了一些问题。即,当我按下提交按钮时,如果表单不完整,则会出现一个警告框,显示“请填写表单...”。

按“确定”后,填充的数据会刷新。我想保留填充的数据。我不知道这个问题。如果表单提交不完整,我希望我的数据应该保留。

请帮我解决这个问题

4

4 回答 4

3

我认为你必须阻止提交事件被转发。尝试:

if (fname==""|| ...) {
   alert('...');
   return false;
}

问候

副歌

于 2013-04-16T13:16:58.343 回答
2

您需要添加return false;到您的onsubmit功能。问题是 onsubmit 函数在页面发布表单之前运行。此函数可以返回一个truefalse布尔值,指示是否重新发布页面。在您的情况下,您也没有返回,因此页面“提交”并重新发布,并且所有用户数据都消失了。

例如:

<form onsubmit="return pa();">
...
</form>

在 pa 函数中:

function pa() {
...
    if( some conditional ) {
        return true;
    } else {
        return false;
    }
}

希望这可以帮助。

于 2013-04-16T13:16:57.240 回答
0

而不是<form onsubmit="pa()">使用 <form onsubmit=" return pa()">. 在您发布警报后在您的代码中返回 false。这应该可以解决您的问题

于 2013-04-16T13:18:28.830 回答
0

这是帮助您的方法。

1.将jQuery连接到您的页面。2.像这样在表单元素上放置一个 ID 选择器...

<form id="myform">

3.然后将以下脚本代码添加到您的页面

 $(function() {
 $('#myform').submit(function () {
  pa();
  return false;
  });
 });
于 2013-04-16T13:20:12.823 回答