2008-10-09 64 views
1

我有一個帶有選項卡控件的頁面,每個控件有近15個控件。總共有10個標籤和一個頁面中的約150個控件(控件如下拉列表,文本框,單選按鈕,僅限於列表框)。如何在頁面中使用javascript獲取頁面中的所有控件頁面

我的要求是在頁面底部有一個按鈕(提交)。我需要使用JavaScript進行檢查,在該頁面的150個控件中至少選擇3個選項,而不管它們選擇哪個選項卡。

請建議這個可以在我的aspx頁面上用JavaScript完成的最簡單最簡單的方法。

+0

刪除`和`標籤。 – 2008-10-16 23:46:25

回答

4

假設頁面上只有一個窗體(如果更多,則循環遍歷窗體並嵌套下面的循環)。

var selectedCount = 0; 
    var element; 

    for (var i = 0; i < document.forms[0].elements.length; i++) 
    { 
    element = document.forms[0].elements[i]; 

    switch (element.type) 
    { 
     case 'text': 
     if (element.value.length > 0) 
     { 
      selectedCount++; 
     } 
     break; 
     case 'select-one': 
     if (element.selectedIndex > 0) 
     { 
      selectedCount++; 
     } 
     break; 
     //etc - add cases for checkbox, radio, etc. 
    } 
    } 
0

我會看看基於原型serialize方法的東西 - 它可以給你一個所有表單控件的散列 - 它可能會給你一個你想要的東西。

像螢火蟲一樣會幫助你看到你得到什麼,並評估它是否符合你的需求。

0

你說你需要驗證至少應該選擇三個選項,但是你是否有可能需要驗證比這三個更多的選項?這些控件是否有唯一的ID或類名?你在使用特定的框架(jQuery,Prototype等)嗎?

不知道更多關於你的項目,很難做出任何固體建議,但使用純JavaScript(無框架),並假設你有,比如說,唯一的類名字,我會說...

  • 的DOM加載之後,加載所有的控制,你需要驗證到一個數組
  • 附加一個事件監聽器提交抓時,它已被點擊(通過其ID或類名讓他們)
  • 在提交實際發生之前,遍歷您的控件列表並根據需要驗證每個控件。如果驗證是好的,繼續提交的默認操作;否則,將某種形式的錯誤消息返回給用戶。

這聽起來像是一個非常通用的解決方案,但如果不知道更多關於設置的信息,很難給出具體的代碼。

0

jQuery的將是一個簡單得多,以獲得頁面上的控件:

var inputs = $('input'); 
var selects = $('select'); 

var textBoxes = $("input[type='text']"); 
0

你真的應該考慮使用jquery來解決這個問題。這是免費的,所有的JavaScript程序員都在使用它!

如果你使用jQuery,你的問題變得相當微不足道。以下代碼行將搜索整個頁面,並返回所選位置的列表項的數量。

var count = $("option:selected").length; 
相關問題