2017-01-11 2 views
0

Я работаю над модулем prestashop 1.6. В каждой вкладке есть 3 вкладки, имеющие 1 форму. Я объединил 3 формы, чтобы они были отправлены, нажав любую из 3 кнопок отправки.Формы <select> значение не отправлено

JQuery Я использовал:

$('.submit_general').bind('click', function() { 
    $('#form1 :input').not(':submit').clone().hide().appendTo('#general'); 
    $('#form2 :input').not(':submit').clone().hide().appendTo('#general'); 
    $('#form1 select').not(':submit').clone().hide().appendTo('#general'); 
    $('#form2 select').not(':submit').clone().hide().appendTo('#general'); 
    console.log($('#form1 select').val()); 
    console.log($('#form2 select').val()); 
}); 
$('.submit_form1').bind('click', function() { 
    $('#general :input').not(':submit').clone().hide().appendTo('#form1'); 
    $('#form2 :input').not(':submit').clone().hide().appendTo('#form1'); 
    $('#form2 select').not(':submit').clone().hide().appendTo('#form1'); 
}); 
$('.submit_form2').bind('click', function() { 
    $('#general :input').not(':submit').clone().hide().appendTo('#form2'); 
    $('#form1 :input').not(':submit').clone().hide().appendTo('#form2');   
    $('#form1 select').not(':submit').clone().hide().appendTo('#form2');   
}); 

выберите элементы в виде 2 и 3 формы, которые были добавлены с помощью Ajax.

Проблема заключается в том, когда я отправляю форму с вкладки «общий», выбранные элементы как в форме1, так и в форме2 не передаются. Также, когда я отправляю из формы 1 вкладку Form1 выбранные значения, представленные, но не из формы2 и наоборот.

Я проверил значения сообщений, написав на консоли. Он дает правильный результат, но они не отправляются, а затем выдается 1-й вариант обоих селекторов.

HTML:

<form id="form1"> 
<input type="hidden" name="submitform1" value="1">    
<div class="panel" id="fieldset_form_1">           
    <div class="form-wrapper">       
     <div class="form-group mailigen_form">     
      <div class="col-lg-9">      
       <div id="list1"><div style="padding: 7px 0px"><font color="red">No list exists</font></div></div>  
      </div> 
     </div> 
    </div><!-- /.form-wrapper --> 
    <div class="panel-footer"> 
     <button type="submit" value="1" id="configuration_form_submit_btn_1" name="submitform1" class="submit_form1 btn btn-default pull-right">Save</button> 
    </div> 
</div> 

AJAX ответ добавлены вместо какого-либо текста списка:

<select name="form_1" id="form_1"> 
<option value="1"> Test List 3</option> 
<option value="2"> Test List 2</option> 
<option value="3"> Test List 1</option> 
</select> 
+0

Можете ли вы вставить свой HTML или HTML-код Just SELECT? –

+1

В стороне, я думаю, что есть более эффективные способы решения вашей проблемы, чем клонирование и скрытие таких элементов. Подумайте, можете ли вы остановить отправку формы, собрать все свои значения, а затем отправить данные, – Tom

+0

Как? @thebluefox – Nimish

ответ

1

Это происходит потому, что, когда вы клонировать элемент и добавить его к другому, он теряет это значение. Вам нужно будет установить атрибут выбранного параметра в true. Лучше всего создать вход, установить его имя на значение select, а его значение - на значение select. На стороне сервера вы не увидите этого, поэтому не имеет значения, используете ли вы вход вместо выбора.

$('#form1 select, #form2 select').each(function() { 
    $("<input type='hidden' name='"+$(this).attr("name")+"' value='"+$(this).val()+"' />").appendTo('#general'); 
}); 
+0

Спасибо. Это сработало. – Nimish

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