Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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_Alert - Fatal编程技术网

Javascript 按函数验证表单

Javascript 按函数验证表单,javascript,html,forms,validation,alert,Javascript,Html,Forms,Validation,Alert,我有个奇怪的问题。我尝试用JavaScript中的函数验证我的表单,方法如下: <input type="submit" onclick="return validate();" name="valideButton" value="Something" /> 当我使用alertdocument.forms[formName][someValidateInputName].value时,表单中的一切都正常,但当我调用函数validate时;我有一个带有某些警报的警报,但没有带有so

我有个奇怪的问题。我尝试用JavaScript中的函数验证我的表单,方法如下:

<input type="submit" onclick="return validate();" name="valideButton" value="Something" />
当我使用alertdocument.forms[formName][someValidateInputName].value时,表单中的一切都正常,但当我调用函数validate时;我有一个带有某些警报的警报,但没有带有someValidateInputName的警报。当我尝试检查someValidateInputName时,函数似乎返回true,我不知道为什么

带有函数的脚本位于html代码上方的同一文件中。
我以同样的方式在我的其他页面上验证表单,没有问题。

alertSome alert!;应该保持警惕!;它现在的方式是,它试图提醒所有的东西,直到下一次,这意味着它试图提醒你一半的函数。

好的,我解决了这个问题。 这是一个愚蠢的错误。。。我想没有更多的信息谁也帮不了我。 我跳过这个,因为我忘了这可能是如此重要

我的表单在foreach循环中被关闭,许多输入的name=someValidateInputName,因此我的外部函数不知道我要验证哪个输入。我不是这样看待这个问题的,因为对于我来说,奇怪的是,只有我尝试读取输入值时,函数才会返回true

如果有人像我一样忘记了这件事,下面是解决办法: 我们需要向表单名称和输入名称添加索引,如下所示:

<input type="submit" onclick="return validate();" name="valideButton <?php echo $j; ?>" value="Something" />
function validate(index) {

    alert("Some alert!");

    var someValidateInputName = document.forms["formName"+index]["someValidateInputName"+index].value;

    alert(someValidateInputName);

    if (someValidateInputName == "0") {
        alert("Wrong value: " + document.forms["formName"+index]["someValidateInputName"+index].value);
        return false;
    }
    return true;
}
最后,我的验证如下所示:

<input type="submit" onclick="return validate();" name="valideButton <?php echo $j; ?>" value="Something" />
function validate(index) {

    alert("Some alert!");

    var someValidateInputName = document.forms["formName"+index]["someValidateInputName"+index].value;

    alert(someValidateInputName);

    if (someValidateInputName == "0") {
        alert("Wrong value: " + document.forms["formName"+index]["someValidateInputName"+index].value);
        return false;
    }
    return true;
}
如果您可以将表单放在foreach之外,那么您不需要为表单创建索引

谢谢你的帮助!
干杯

警惕一些警惕!;应该保持警惕!;您是否尝试过对表单本身的提交进行验证?是的,我尝试过,但onsubmit根本不起作用,即使在我的其他页面上也是如此。所以我决定使用onClick并调用函数。就像我写的,这在我的其他网站上有效。好吧,只有我的帖子有一个错误。在代码中我有'alertSome alert!;`。很抱歉。问题仍然存在。@user3166192我对JavaScript不是很有经验,但如果您尝试一下该怎么办:document.forms[formName][someValidateInputName].innerHTML;而不是document.forms[formName][someValidateInputName].value;?不,也有同样的问题。当我尝试使用JS函数时,它会自动返回true。@user3166192-Hmm,这很奇怪。您能否尝试在de 2nd警报中使用此选项:alertdocument.forms[formName][someValidateInputName].value;看看这种方法是否有效。请记住,我不擅长使用javascript,所以我只是尝试我所想的一切。@user3166192另外,也许您可以在函数中构建一个if语句。如果设置了POST数据{alertPost数据已设置;}否则{AlertIs not set;}这样您就知道它是否正确检索数据