2014-01-20 21 views
1

我想要求用戶輸入至少1個選項。從我的代碼中,用戶需要輸入所有輸入。任何人都可以請檢查我的代碼有什麼問題嗎?JavaScript驗證表單或函數

JSP

<form role="form" method="POST" id="search" action="Servlet" 
     onsubmit="return validateForm();"> 

    <label>Name</label> 
    <input name="name"> 

    <label>ID</label> 
    <input name="id"> 

    <label>no</label> 
    <input name="no"> 

    <button type="submit">Search</button> 
</form> 

的JavaScript

function validateForm() { 
    var name = document.forms["search"]["name"].value; 
    var id = document.forms["search"]["id"].value; 
    var no = document.forms["search"]["no"].value; 

    if ((name == null || name == "") || (id == null || id == "") || (no == null && no == "")) { 
     alert("Please enter either one to perform search"); 
     return false; 
    } 
} 
+0

請張貼您的HTML也 – Sergio

+0

看看你的條件:如果名字是空的或者如果id是空的或沒有。 ..所以如果其中一個領域是空的,它不會繼續 –

+0

@Sergio我把HTML代碼。請看一下。謝謝! – newbieinjavaversion2

回答

0
function validateForm() { 
    var name = document.forms["search"]["name"].value; 
    var id = document.forms["search"]["id"].value; 
    var no = document.forms["search"]["no"].value; 

    if ((name == null || name == "") && (id == null || id == "") && (no == null || no == "")) { 
     alert("Please enter either one to perform search"); 
     return false; 
    } 
} 

或者你會像@isherwood那樣做。也照顧打字錯誤,如不關閉您的輸入標籤 應該是這樣的<input name="no"/>祝你好運,我希望這會有所幫助

1

只是有點邏輯的調整應該做的伎倆:

if ( 
    (name != null || name != "") || 
    (id != null || id != "") || 
    (no != null && no != "") 
) { 

這是說,如果的任何一個科幻現場有價值,繼續。

+0

你爲什麼要做括號?!你不應該分組,因爲你正在ORing所有的情況;) –

+0

我沒有。 OP做到了。我只是顛倒了邏輯。 – isherwood