2014-09-02 3 views
0

У меня есть динамически созданные формы на моей странице. Поэтому, когда флажок в этой форме проверен, я хочу опубликовать форму с помощью jQuery. Я все еще не могу правильно выбрать форму.jQuery выбор динамических элементов

HTML код:

<tbody> 
    <tr> 
     <form id="" class="recmndation"> 
      <td>sdfdsfdsfdsfsdfsdfsdfsd</td> 
      <td> 
       <input class="checkboxes" type="checkbox" name="Luxury Resorts" /> 
      </td> 
      <td> 
       <input class="checkboxes" type="checkbox" name="Honeymoon Resorts" /> 
      </td> 
      <td> 
       <input class="checkboxes" type="checkbox" name="Dive Resorts" /> 
      </td> 
      <td> 
       <input class="checkboxes" type="checkbox" name="Surf Resorts" /> 
      </td> 
      <td> 
       <input class="checkboxes" type="checkbox" name="Spa Resorts" /> 
      </td> 
      <td> 
       <input class="checkboxes" type="checkbox" name="Over-night Resorts" /> 
      </td> 
      <input type="hidden" name="hotel_id" value="2" /> 
     </form> 
    </tr> 
    <tr> 
     <form id="" class="recmndation"> 
      <td>tests</td> 
      <td> 
       <input class="checkboxes" type="checkbox" name="Luxury Resorts" /> 
      </td> 
      <td> 
       <input class="checkboxes" type="checkbox" name="Honeymoon Resorts" /> 
      </td> 
      <td> 
       <input class="checkboxes" type="checkbox" name="Dive Resorts" /> 
      </td> 
      <td> 
       <input class="checkboxes" type="checkbox" name="Surf Resorts" /> 
      </td> 
      <td> 
       <input class="checkboxes" type="checkbox" name="Spa Resorts" /> 
      </td> 
      <td> 
       <input class="checkboxes" type="checkbox" name="Over-night Resorts" /> 
      </td> 
      <input type="hidden" name="hotel_id" value="1" /> 
     </form> 
    </tr> 
</tbody> 

код JQuery:

<script> 
    $('.checkboxes').on('change', function() { 
     var val = $(this).parents('.recmndation').attr('id'); 
     alert(val); 
    }); 
</script> 

alert сообщение всегда говорит "не определено", и нет никаких ошибок в консоли.

PHP код:

<?php 
if (!empty($hotel_list)) { 
    foreach ($hotel_list as $htls) { 
     ?> 
     <tr> 
     <form id="<?php $htls->name ?>" class="recmndation"> 
     <td><?php echo $htls->name; ?></td> 
     <?php 
     if ($rcmnd_list) { 
      foreach ($rcmnd_list as $rcl) { 
       ?> 
       <td><input class="checkboxes" type="checkbox" name="<?php echo $rcl->rec_name; ?>" /></td> 
       <?php 
      } 
     } 
     ?> 
     <input type="hidden" name="hotel_id" value="<?php echo $htls->hotel_id; ?>" /> 
     </form> 
     </tr> 
     <?php 
    } 
} 
?> 
+1

вы можете поделиться сгенерированный HTML –

+1

Не могли бы вы обновить обработанную HTML вместо PHP? –

+3

Ваш html недействителен, потому что 'tr' не может иметь' form' в качестве дочернего –

ответ

1

Просто попробуйте это, и это должно работать:

<script> 
$(document).ready(function(){ 
    $('.checkboxes').on('change', function() { 
     var val = $(this).closest('.recmndation').attr('id'); 
       OR YOU CAN USE PROP 
     var val = $(this).closest('.recmndation').prop('id'); 
     alert(val); 
    }); 
}); 
</script> 
+1

Я вижу .. html недействителен, и если он исправлен, то вышеупомянутый скрипт будет работать правильно. :) –

+0

спасибо. теперь он работает. – Yasitha

+0

@Yasitha, вы уверены, что это решение работает? Я тестирую в своей машине, и это не так :-( Когда я смешиваю форму с таблицей, как код, о чем упоминалось выше, он не работает. –

1

Прежде всего,

1) Ваша форма ID пуста! так что вы получите только пустое предупреждение.

Во-вторых,

2) просьба представить <table> внутри <form> не наоборот.

Ваш формат код должен выглядеть так:

<form id="two" class="recmndation"> 

     <table> 
      <tr> 
       <td> 
       <td><input class="checkboxes" type="checkbox" name="Luxury Resorts" /></td> 
       <td><input class="checkboxes" type="checkbox" name="Honeymoon Resorts" /></td> 
       <td><input class="checkboxes" type="checkbox" name="Dive Resorts" /></td> 
       <td><input class="checkboxes" type="checkbox" name="Surf Resorts" /></td> 
       <td><input class="checkboxes" type="checkbox" name="Spa Resorts" /></td> 
       <td><input class="checkboxes" type="checkbox" name="Over-night Resorts" /></td> 
       <td><input type="hidden" name="hotel_id" value="1" /></td> 
      </tr> 
     </table> 
    </form> 



    <script> 
     $('.checkboxes').on('change', function() { 
      var val = $(this).parents('.recmndation').attr('id'); 
      alert(val); 
     }); 
    </script> 
+0

Raja csp: Это не ответ, поэтому вы должны добавить это как комментарий, а не ответ. Во-вторых, правильно прочитайте вопрос. Идентификатор формы: 'id =" name?> "' .. –

+0

@Yunus просто смотреть визуализированный html

Balachandran

+0

все еще не работает http://jsfiddle.net/arunpjohny/otk7tqfu/2/ –

Смежные вопросы