Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.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_Onclick_Validation - Fatal编程技术网

javascript验证失败后单击保留表单值

javascript验证失败后单击保留表单值,javascript,html,onclick,validation,Javascript,Html,Onclick,Validation,这是作业的一部分。本该工作的一切都已经工作了,但有些事情困扰着我。到目前为止,代码的唯一目的是测试我们从数据进行验证的能力。无论如何,现在validate()函数已附加到提交按钮: <input type="submit" value="Find Love" onclick="validate()"> 当任何验证失败时,所有文本框、下拉列表等都会被清除,但我希望它们保留它们的值,只关注第一个不正确的值(此时保留它们的值对我来说更重要)。实际情况是,这需要对onclick函数进行

这是作业的一部分。本该工作的一切都已经工作了,但有些事情困扰着我。到目前为止,代码的唯一目的是测试我们从数据进行验证的能力。无论如何,现在validate()函数已附加到提交按钮:

<input type="submit" value="Find Love" onclick="validate()">

当任何验证失败时,所有文本框、下拉列表等都会被清除,但我希望它们保留它们的值,只关注第一个不正确的值(此时保留它们的值对我来说更重要)。实际情况是,这需要对onclick函数进行一些修改还是同时使用不同的函数?请帮忙。如果您需要查看javascript,我也可以发布

function validate()
{
var blnValid = true;

if(isBlank("txtFName"))
{
    blnValid = false;
    alert("First name cannot be blank!")
    document.getElementById("txtFName").focus();
}

if(blnValid)
{   
    if(isBlank("txtLName"))
    {
        blnValid = false;
        alert("Last name cannot be blank!")
        document.getElementById("txtLName").focus();
    }
}
if(blnValid)
{
    if(isBlank("txtAge"))
    {
        blnValid = false;
        alert("Age cannot be blank!")
        document.getElementById("txtAge").focus();
    }
}
if(blnValid)
{
    var strInput = document.getElementById("txtAge").value;
    if(!isInt(strInput))
    {
        blnValid = false;
        alert("You must enter a valid number in the age field.")
        document.getElementById("txtAge").select();
    }
}
if(blnValid)
{
    if(document.getElementById("selUserGender").selectedIndex <= 0)
    {
        alert("Please select your gender");
        blnValid = false;
    }
}
if(blnValid)
{
    if(document.getElementById("selFindGender").selectedIndex <= 0)
    {
        alert("Please select your gender");
        blnValid = false;
    }
}
if(blnValid)
{
    blnChecked = false;
    arRadio = document.forms[0].rdbAgeRange;
    for (var i = 0; i < arRadio.length; i++)
    {
        if(arRadio[i].checked)
        {
            blnChecked = true;
            break;
        }
    }
    if (!blnChecked)
    {
        alert("You must select an age group.");
        blnValid = false;
    }
}
if(blnValid)
{
    if(!document.getElementById("chkSkeeball").checked
        && !document.getElementById("chkAir").checked
        && !document.getElementById("chkCliff").checked
        && !document.getElementById("chkHamster").checked)
    {
        blnValid = false;
        alert("You must select a hobby.")
    }   
}

return blnValid;
}


function isInt(strValue)
{
var validNums = "0123456789";
var blnIsNumber = true;
var tempChar;

for (var i = 0; i < validNums.length; i++)
{
    tempChar = strValue.substr(i, 1);
    if (validNums.indexOf(tempChar) == -1)
    {
        return false;

    }
}
return true;
}

function isBlank(elementID)
{
if(document.getElementById(elementID).value.length == 0)
{
    return true;
}

return false;
}
函数验证()
{
var blnValid=true;
如果(isBlank(“txtFName”))
{
blnValid=false;
警报(“名字不能为空!”)
document.getElementById(“txtFName”).focus();
}
如果(blnValid)
{   
如果(isBlank(“txtLName”))
{
blnValid=false;
警报(“姓氏不能为空!”)
document.getElementById(“txtLName”).focus();
}
}
如果(blnValid)
{
如果(为空(“txtAge”))
{
blnValid=false;
警报(“年龄不能为空!”)
document.getElementById(“txtAge”).focus();
}
}
如果(blnValid)
{
var strInput=document.getElementById(“txtAge”).value;
如果(!isInt(strInput))
{
blnValid=false;
警报(“您必须在年龄字段中输入有效数字。”)
document.getElementById(“txtAge”).select();
}
}
如果(blnValid)
{
如果(document.getElementById(“selUserGender”).selectedIndex缺少分号:

if(isBlank("txtFName"))
{
    blnValid = false;
    alert("First name cannot be blank!") //here
    document.getElementById("txtFName").focus();
}

if(blnValid)
{   
    if(isBlank("txtLName"))
    {
        blnValid = false;
        alert("Last name cannot be blank!") //and here
        document.getElementById("txtLName").focus();
    }
}
if(blnValid)
{
    if(isBlank("txtAge"))
    {
        blnValid = false;
        alert("Age cannot be blank!") //and here
        document.getElementById("txtAge").focus();
    }
}

您的问题实际上是您的HTML。Javascript中的任何内容都不会清除元素,但由于您使用的是onClick,因此表单实际上正在提交。我假设它可能只是提交回页面并清除所有内容。而不是在form元素中使用onSubmit来代替onClick:

<form method="post" action="url_of_action" onSubmit="return validate()">


如果无效,它将阻止表单提交。

请这样做。可能有一行用于清除输入。抱歉,这是我第一次发布到此网站。我似乎无法使用评论框…我已将标记更改为您建议的内容,但同样的情况发生了。您是否收到了警报框?您知道,我刚刚再试了一次(我从昨天起就没看过了),它很有效。谢谢!现在我只需要研究一下动作值。我不能投票支持你的答案,我的代表不够高,或者其他什么。还有,有没有一种简单的方法可以在这些评论框中嵌入代码?动作值应该指向处理表单的URL。(通常是用服务器端语言(如PHP)编写的文件)。如果课程的对象是Javascript,则可以将其留空。