2014-09-01 63 views
1

我有个奇怪的问题。我试图通过功能验证我的形式在JavaScript中这样说:按功能验证表格

<input type="submit" onclick="return validate();" name="valideButton" value="Something" /> 

而且验证功能:

function validate() { 

    alert("Some alert!"); 

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

    alert(someValidateInputName); 

    if (someValidateInputName == "0") { 
     alert("Wrong value: " + document.forms["formName"]["someValidateInputName"].value); 
     return false; 
    } 
    return true; 
} 

当我使用alert(document.forms["formName"]["someValidateInputName"].value)我的表单中有一切还好吧,但是当我通话功能validate();我对Some alert发出了提醒,但我没有提醒someValidateInputName。这似乎是一个功能return true当我尝试检查someValidateInputName,我不知道为什么...

与功能的脚本的HTML代码中相同的文件。 我以同样的方式验证了其他页面上的表单,没有任何问题。

+1

警报(“有些警惕!);应警惕(”有些警惕“!); – 2014-09-01 07:41:24

+0

你尝试的形式做验证'onsubmit'本身 – 2014-09-01 07:50:19

+0

是的,我尝试,但的onsubmit根本不工作?所有的,甚至在我的其他网页上,所以我决定使用onClick并调用函数,就像我写的,这可以在我的其他网站上工作 – Blagalin 2014-09-01 09:30:01

回答

0

好吧,我解决问题,以提醒所有的方式。 这是一个愚蠢的错误.. 。我认为,没有人能不能帮我没有更多的信息。 我跳过这一点,因为我忘了,这可能是非常重要的。

formforeach闭环和多输入具有name="someValidateInputName",所以我的外功能不知道我想验证哪个输入,我是这样做的不以这种方式来看问题,因为对我来说,奇怪的是,只有当我尝试读取输入值时,函数总是返回true。

如果有人忘了这个和我一样,这里是解决: 我们需要添加一个索引形式的名称和输入的名称是这样的:

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

以同样的方式,我们必须添加索引到表单的名称。 我发送我的索引通过$ _POST读取正确的值。我也增加了$j

<input type="hidden" value="<?php echo $j++; ?>" name="Index" /> 

在结束我的validation()这个样子的:

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; 
} 

如果你可以放置form出来你不被需要的指数,形成foreach的。

感谢您的帮助! 干杯

0

alert("Some alert!);应该alert("Some alert!");现在是尝试,直到下一个“,这意味着它试图以提醒一半的功能。

+0

好吧,只有在我的帖子中有错误。一些警告!“);'。对不起,仍然是这个问题。 – Blagalin 2014-09-01 07:46:20

+0

@ user3166192我没有JavaScript经验,但如果你尝试:'document.forms [”formName“] [”someValidateInputName“]。innerHTML ;'而不是'document.forms [“formName”] [“someValidateInputName”] value;'? – 2014-09-01 07:51:20

+0

不,有同样的问题,当我尝试使用JS函数时,它会自动返回true。 – Blagalin 2014-09-01 08:01:52