2011-05-11 46 views
0

我寫了一個表單標籤和一個提交按鈕,但對於輸入多點頁面....的驗證頁面的多個部分,但只能有一個提交按鈕

<form> 
... 
</table class="t1"> 
    <tr> 
    <td><input name="name1" /></td> 
    <td><input name="stDate" /></td> 
    <td><input name="endDate" /></td> 
    <td><input name="description1" /></td> 
    </tr> 
</table> 
<table class="t2"> 
    <tr> 
    <td><input name="name2" /></td> 
    <td><input name="date2" /></td> 
    <td><input name="description2" /></td> 
    <td><input name="email2" /></td> 
    <td><input name="id2" /></td> 
    </tr> 
</table> 
<table class="t3"> 
    <tr> 
    <td><input name="name3" /></td> 
    <td><input name="date3" /></td> 
    <td><input name="description3" /></td> 
    </tr> 
</table> 
.... 
    <div align="center" class="submit"> 
    <input class="submit" width="10%" type="submit" name="submit" id="submit" value="Submit" /> 
    </div> 
</form> 

無這些字段是必需的,用戶可以填寫每個字段或不必填寫任何字段。我遇到的問題是,如果用戶填寫表「t1」中的任何字段,那麼我需要要求其他字段也填寫爲表「t1」.....以及相同表「t2」和「t3」。 - 另外請注意,輸入字段是唯一的,bc我在提交後寫入數據庫。感謝您的幫助,如果需要,請索取更多信息。

回答

0

你可以這樣做:

<form ... onsubmit="return validate_form();"> 
... 
</form> 
<script type="text/javascript"> 
    function validate_form(){ 
     var name_list = document.getElementsByName('name'); 
     var date_list = document.getElementsByName('date'); 
     var desc_list = document.getElementsByName('description'); 
     var is_valid = true; 
     for(var i=0; i<name_list.length; i++){ 
      var n = name_list[i].value.length > 0; 
      var d = date_list[i].value.length > 0; 
      var ds = desc_list[i].value.length > 0; 
      if(!((n && d && ds) || (!n && !d && !ds))) { 
       is_valid = false; 
      } 
     } 

     return is_valid; 
    } 
</script> 

類似的東西反正

0

你可以做的一件事是使用getElementsByName。然後你會得到名稱,日期和描述的數組。然後你就可以遍歷它們並確保如果name [0]不爲空,然後日期[0]和描述[0]不爲空等

更新以支持更新的問題:

在這種情況下,更好的選擇是使用jQuery,它提供了更簡單的語法來做同樣的事情。你可以有一個虛擬的css類用於組成FORM部分的表格。例如

<table class="t1 formsection"> 

「formsection」是虛擬css類。

然後使用jquery你可以得到$(「。formsection」),它會給所有的表單部分。 JQuery允許你獲得給定元素的特定元素類型的子元素。使用它可以獲取每個表單部分的輸入元素。

一旦你有了,你可以遍歷這些輸入元素,看看是否全部是空白或所有arte填充。

+0

後現在進行編輯時,這只是一個小例子,表都有不同數量的輸入字段。這在這種情況下還能起作用嗎?我甚至不確定如何在數組上運行任何類型的驗證腳本。 – Dan 2011-05-11 13:58:57

+0

@Jonathon我已經相應地更新了答案 – Krishna 2011-05-11 14:15:09