2013-10-26 77 views
0

我有了使用while循環創建幾種形式的網頁,並各自形成有四個選擇。我試圖弄清楚如何檢查屬於當前窗體的每個選擇(包含點擊按鈕的窗體)以確認是否有任何選擇。所有表格都被封裝在一個名爲#audit_content的div中。JQUERY得到頁面上的多個選擇值多種形式

意圖是檢查,如果如果任何選擇的已被選擇的可變grade不是一定值,則腳本檢查。

在html

<form id="audit_form<? echo $i; ?>"> 
     <select name="grade" class="grade<? echo $i; ?>"> 
     <option value="1">1</option> 
     <option value="2">2</option> 
     <option value="3">3</option> 
     <select>  
     <select name="patient" class="reason_select"> 
     <option value="">Select</option> 
     <option value="2">2</option> 
     <option value="3">3</option> 
     <option value="4">4</option> 
     </select> 
     <select name="exposure" class="reason_select"> 
     <option value="">Select</option> 
     <option value="2">2</option> 
     <option value="3">3</option> 
     <option value="4">4</option> 
     </select> 
     <select name="equipment" class="reason_select"> 
     <option value="">Select</option> 
     <option value="2">2</option> 
     <option value="3">3</option> 
     <option value="4">4</option> 
     </select> 
     <select name="positioning" class="reason_select"> 
     <option value="">Select</option> 
     <option value="2">2</option> 
     <option value="3">3</option> 
     <option value="4">4</option> 
     </select> 
    <input type="button" name="audit_submit" class="audit_submit audit_submit_btn ie7_submit" value="" /> 
    <input type="hidden" class="form_id" value="<? echo $i; ?>" > 
</form> 

(while循環中,用於唯一地識別每個表格過程中創建值$i)jQuery的

<script> 
    $(document).ready(function(){ 
    $('#audit_content').on("click", ".audit_submit", function(){ 
     var form_id = $(this).prev('.form_id').val(); 
     var grade = $('.grade'+form_id).val(); 
      if(grade != 1){ 
     $('select.reason_select').each(function(){ 
      alert($(this).text()) 
      } 
     }); 
</script> 

腳本,因爲它是顯示器我知道的頁面上的每個選擇與reason_select類的值都是因爲我沒有告訴它檢查一個特定的表單,我堅持的那一點。

+0

$(」級'+ form_id) - 我無法在HTML中看到此選擇器的目標。 – kol

+0

不要顯示你的PHP,顯示你的HTML。 –

+0

我只展示了PHP這樣你就叩頭,其中值$我走進它 – tatty27

回答

1

按鈕的形式外,不內如所提到的。

排除任何重複類型的widget來查找該控件的父母,然後只在其搜索: 移動表單中的按鈕將使它很容易做:

$('#audit_content').on("click", ".audit_submit", function() { 
    var form=$(this).closest('form') 
    var selects=form.find('select'); 
// do somthing with selects 

}) 
+0

喜,按鈕在表單中,添加按鈕中後,我一定發佈該問題是因爲其他人希望看到按鈕 – tatty27

+0

的代碼,無論...按鈕的位置並不重要....主要概念是隔離模塊的父級並在其中進行搜索。這是一個常見的模式,當使用頁面中的任何重複類型小部件時,無論是表單,行,自定義模塊還是其他任何 – charlietfl

+0

謝謝,但是如何檢查是否有任何選擇具有值? – tatty27

1

我將劇本改爲

<script> 
    $(document).ready(function() { 
     $('#audit_content').on("click", ".audit_submit", function() { 
      var form = $(this).prev('form'); 
      var grade = $('select[name="grade"]', form).val(); 
      if (grade != '1') { 
       $('select.reason_select', form).each(function() { 
        alert($(this).text()); 
       }); 
      } 
     }); 
    }); 
</script> 

在腳本中已經張貼有幾個失蹤)}所以應該建立語法錯誤..

你提到

current form (the one containing the button clicked)

,但你的按鈕不包含在形式,這就是爲什麼我的代碼變更爲示出form = $(this).prev('form')

+0

按鈕的形式中,有人問我,我會發布後添加代碼按鈕,忘了把它的形式標記 – tatty27