Я хочу отправить форму при нажатии переключателя. Код ниже отлично работает во всех браузерах, которые я тестировал до сих пор, кроме Safari.об изменении формы отправки не передает измененное значение в форме
В Safari, когда я нажимаю на переключатель, он, кажется, передает форму, прежде чем регистрировать значение нового выбранного элемента.
Вот пример.
HTML:
<input type="radio" value="1" checked="checked">radio button 1
<input type="radio" value="2">radio button 2
<input type="radio" value="3">radio button 3
JS:
$j('input[type="radio"]').on('change',function(){
$j(this).closest('form').submit();
});
Если я нажимаю на кнопку радио 2 или переключатель 3, форма была отправлена, но это представляется с значением 1, а не значение переключателя, на который я нажал.
Эта проблема не ограничивается переключателями. У меня такая же проблема с выборами. Когда я меняю значение, форма отправляется, но она отправляет старое значение.
EDIT HTML
<form accept-charset="UTF-8" action="someurl" method="post">
<label><input checked="checked" id="1" name="cart[location_id]" type="radio" value="1">radio button 1</label>
<label><input id="2" name="cart[location_id]" type="radio" value="2">radio button 2</label>
</form>
ДРУГОЙ TRY JS Это также не работает
$j('input[type="radio"]').on('change',function(){
$j('input[name="cart[location_id]"]').val($j(this).val());
$j(this).closest('form').submit();
});
потому что '' checked – Shehary
У меня была эта проблема, как только вы можете добавить свой полный тег формы, а также – joyBlanks
@Shehary Я действительно не думаю это проблема ... тогда это не сработало бы в каком-либо другом браузере. – narfie