2014-09-01 101 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