JavaScript帮助!停止警报框重置表单

JavaScript帮助!停止警报框重置表单,javascript,Javascript,我试图阻止javascript清除用户输入的表单文本。这是我的功能。它被设置为循环直到退出,并且工作起来就像我也需要它一样。现在我不需要它删除文本框中的数据,因为我需要它从另一个按钮运行第二个函数 function formValidate () { var validateName = document.getElementById("name").value; var validateAge = document.getElementById("age").value;

我试图阻止javascript清除用户输入的表单文本。这是我的功能。它被设置为循环直到退出,并且工作起来就像我也需要它一样。现在我不需要它删除文本框中的数据,因为我需要它从另一个按钮运行第二个函数

function formValidate () {
    var validateName = document.getElementById("name").value;
    var validateAge = document.getElementById("age").value;
    var validateEmail = document.getElementById("email").value;
    var validateWeight = document.getElementById("weight").value;
    var validateHeight = document.getElementById("height").value;

    var x=document.forms["form3"]["email"].value;
    var atpos = x.indexOf("@");
    var dotpos = x.lastIndexOf(".");

    if (validateName == null || validateName=="")
    {
    alert("First name must be filled out." + '\n' + "Please fill out again.");
    return false;
    }
    else if (isNaN(validateAge) || validateAge==null || validateAge=="")
    {
    alert("Age must be filled out and/or be numeric." + '\n' + "Please fill out again.");
    return false;
    }

    else if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
    {
    alert("Email must be in a valid email address format." + '\n' + "Please fill out again.");
    return false;
    }
    else if (isNaN(validateWeight) || validateWeight==null || validateWeight=="")
    {
    alert("Weight must be filled out and/or be numeric." + '\n' + "Please fill out again.");
    return false;
    }
    else if (isNaN(validateHeight) || validateHeight==null || validateHeight=="")
    {
    alert("Height must be filled out and/or be numeric" + '\n' + "Please fill out again.");
    return false;
    }
}
函数formValidate(){
var validateName=document.getElementById(“名称”).value;
var validateAge=document.getElementById(“年龄”).value;
var validateEmail=document.getElementById(“电子邮件”).value;
var validatewight=document.getElementById(“权重”).value;
var validateHight=document.getElementById(“高度”).value;
var x=document.forms[“form3”][“email”].value;
var atpos=x.indexOf(“@”);
var dotpos=x.lastIndexOf(“.”);
if(validateName==null | | validateName===“”)
{
警告(“必须填写名字。”+”\n“+”请重新填写。”);
返回false;
}
else if(isNaN(validateAge)| | validateAge==null | | validateAge===“”)
{
警告(“年龄必须填写和/或是数字。”+'\n'+“请重新填写。”);
返回false;
}

否则,如果(atpos没有关于HTML的任何附加信息,我猜当用户单击输入元素type='submit'时,会调用函数

然后,这会导致浏览器执行提交操作以清除表单


我认为解决这个问题最简单的方法是使用一个常规的按钮元素,这样你就可以更好地控制它如何处理表单。然后你可以让你的函数回调到提交操作。

我看不出这个函数有什么问题……到底是什么问题?可能是你的其他代码有问题。循环是如何运行的您正在谈论的rk?请创建一个演示。除非您提供更多信息,否则我认为我们无法帮助您。该函数中的任何位置都不会清除输入中的文本。该函数是否名为
onsubmit
,表单是否会提交到同一页面URL,从而有效地重新加载没有值的表单?Show(至少部分)表单元素的html,以及函数的调用方式。您确定使用的是
?还是在重置按钮上触发的:POr可能使用事件预防默认方法?很好的建议,我不确定他是否在使用jquery,如果不是,我建议他does@xlm-jQuery不会修复错误的逻辑。可能是OP使用了BUTTON元素。默认情况下,按钮是提交按钮。我的问题是按钮是type=“submit”。我将其更改为type=“button”,一切正常。感谢您的快速回复!