@someden

Почему serialize в Jquery не передает значение кнопки submit?

Есть форма
<form action="" name="test_form">
  <input type="text" value="1" name="test" />
  <input type="submit" value="ok" name="submit_test" />
</form>
<div></div>

Есть скрипт
$(document).ready(function(){
  $('form').on('submit', function(event){
    event.preventDefault();
    msg = $(this).serialize();
    $('div').html(msg);
  });
});

codepen.io/anon/pen/wBdRgN
Значение кнопки submit при сериализации не попадает в переменную msg. И вообще значение любого input type="submit" не попадает в сериализацию. Почему так и как это значение можно впихнуть в сериализацию?
  • Вопрос задан
  • 4211 просмотров
Решения вопроса 1
@zifanchuck
api.jquery.com/serialize - No submit button value is serialized since the form was not submitted using a button

Я так понял, что оно и не должно включаться.
Чтобы было в сериализованой строке можно использовать hidden

<input type="hidden" value="ok" name="submit_test" />
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Tumass
Веб-разработчик
Скорее всего знающие люди осудят, но всё же, как вариант на скорую руку:

<form action="" name="test_form">
  <input type="text" value="1" name="test" />
  <button  value="button_1_value"> button_1 </button>
  <button  value="button_2_value"> button_2 </button>
</form>


$(document).ready(function(){
	  	$('form').find('button').on('click', function(event){
		    event.preventDefault();
		    msg = $(this).parent('form').serialize();
		    $('div').html(msg + " " + $(this).val());
  		});
	});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы