2013-07-30 113 views
1

我想在用戶點擊提交按鈕時驗證用戶輸入,但它不起作用。jQuery字段驗證不起作用

jQuery的

$(document).ready(function() { 
    function validateForm() { 
     if ($('#u').value() == '') 
     { 
     alert("no value found"); 
     return false; 
     } 

    }); 

}); 

HTML

<form name="myForm" action="main.php" onsubmit="return validateForm()" method="post"> 
    <input type="text" id="u" /> 
    <input type="submit" value="submit" /> 
</form> 
+0

您的表單中沒有'id =「u」'。 – Barmar

+0

你是什麼意思的「它不會工作」? – federicot

+0

只是'$('#u')。val()'。你會得到它 –

回答

2

有在你的代碼中的許多問題。

  • 值是一個functionattribute刪除您可以使用val(),你也不能使用jQuery對象的值,你可以與DOM對象使用它。

  • 您可能忘記了將ID分配給您的輸入字段也分配。

  • 聲明<input type="text">應該B4 <input id="u" type="text">

  • 你有多餘的括號關閉功能validateForm的currly支架,你不關閉輸入標籤後。

Live Demo

if ($('#u').val() == '') 
{ 
    alert("no value found"); 
    return false; 
} 

您可以使用本地JavaScript方法的getElementById獲取DOM元素(對象)和對象的使用價值屬性。

Live Demo

if (document.getElementById('u').value == '') 
{ 
    alert("no value found"); 
    return false; 
} 
+1

是的,但沒有id =「u」,所以你的答案不適用於他的特殊問題。編輯:現在問題包括id =「你」,他只是修改它。大聲笑。 –

+0

謝謝@AlejandroIván,你是對的,更新了我的答案。 – Adil

+0

我想更改#label的值而不是alert。這就是爲什麼我使用jQuery – IceDawg

0

嘗試

if ($('#u').value() == '') 
{ 
    alert("no value found"); 
    return false; 
} else { 
    $('form[name="myForm"]').submit(); 
} 
+0

@坎帕裏然後它不會發送表單.. – IceDawg

0

由於@Barmar建議檢查您的現有代碼爲丟失的ID。我會將id="u"添加到<input type="text">,並且要謹慎選擇不明確的id名稱,以便其他人稍後可以讀取您的代碼。

現在你已經編輯了原來的問題就很難看到我的答案是如何出現的相關

0

順便說一句,我發現在你的代碼的尷尬。讓我們關注到這條線:

...... 
    if ($('#u').value() == '') 
    { 
    alert("no value found"); 
    return false; 
    } 

}); 

}); 

有兩大});,其中一個用於$(document)和一個用於if()?雖然對於if(),不要鍵入那樣,只需}用於有條件關閉。並且爲了製作function ...,您不需要將功能放入$(document).ready。它可以獨立使用。例如:

function validateForm() { 

    if ($('#u').val() == '') 
    { 
     alert("no value found"); 
     return false; 
    } 

} 

你應該改變。價值()來.VAL()

See this的結果。希望這會有所幫助