2013-10-26 2 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> 

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> 

스크립트를 (값 $i 고유 각 형태를 식별하기 위해 사용되는 반면 루프 중에 만들어지는) 모든 양식의 값은 reason_select이라는 페이지에서 확인할 수 있습니다. 특정 양식을 확인하도록 말하지 않았기 때문입니다. 내가 붙어있는 비트.

+0

$ ('등급 '+ form_id) - HTML에서이 선택기의 대상을 볼 수 없습니다. – kol

+0

PHP를 표시하지 마십시오. HTML을 보여주십시오. –

+0

PHP를 보여 줬기 때문에 $ $ 값이 들어갔다. – tatty27

답변

1

단추로 바 꾸었습니다. 수행하여 매우 쉽게 만들 것 를 양식 내부의 버튼을 이동 :

은 오직 내에서 검색 한 후, 그 위젯의 부모에 대한 반복 유형 위젯의 모양을 분리합니다.

$('#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

관련 문제