Form и submitButton. Как отличить нажатие submitButton?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
andreyrud
Сообщения: 265
Зарегистрирован: 2011.09.26, 14:59

Form и submitButton. Как отличить нажатие submitButton?

Сообщение andreyrud »

Есть форма, в ней textInput и submitButton. Если в поле ввода нажать Ентер, происходит сабмит формы. Если нажать на кнопку происходит так же сабмит формы. Параметры POST в обеих случаях одинаковые.
1. Как отличить сабмит по кнопке от сабмита по Ентеру?
2. Как отключить сабмит формы по Ентеру?
Аватара пользователя
girmate
Сообщения: 1534
Зарегистрирован: 2015.10.27, 12:52

Re: Form и submitButton. Как отличить нажатие submitButton?

Сообщение girmate »

1. Если присвоите кнопке значение value, например value = "my_subbmit", то потом в контроллере сможете точно определить что была нажата именно эта кнопка. Я так делал когда в форме было несколько кнопок subbmit для которых хотелось выполнять разные действия, но не хотелось плодить кучу разных форм для одного и того же набора данных в форме.

2. По поводу отключения кнопки subbmit ничего не скажу. Не сталкивался.
Последний раз редактировалось girmate 2016.02.08, 23:34, всего редактировалось 1 раз.
Осторожно! Вы общаетесь с новичком ;)
Onotole
Сообщения: 1808
Зарегистрирован: 2012.12.24, 12:49

Re: Form и submitButton. Как отличить нажатие submitButton?

Сообщение Onotole »

джаваскриптом
andreyrud
Сообщения: 265
Зарегистрирован: 2011.09.26, 14:59

Re: Form и submitButton. Как отличить нажатие submitButton?

Сообщение andreyrud »

girmate писал(а):1. Если присвоите кнопке значение value, например value = "my_subbmit", то потом в контроллере сможете точно определить что была нажата именно эта кнопка. Я так делал когда в форме было несколько кнопок subbmit для которых хотелось выполнять разные действия, но не хотелось плодить кучу разных форм для одного и того же набора данных в форме.
Написал:

Код: Выделить всё

echo Html::submitButton('Далее...', [
                'name' => 'action',
                'value' => 'submit'
            ]);
Нажал. Получил в посте 'action' => 'submit'.
Вернулся в форму, изменил значение в поле textInput и нажал Ентер. Получил в посте 'action' => 'submit'.

Может быть надо делать просто кнопку без type="submit"? Но будет ли тогда сабмит формы?
Аватара пользователя
girmate
Сообщения: 1534
Зарегистрирован: 2015.10.27, 12:52

Re: Form и submitButton. Как отличить нажатие submitButton?

Сообщение girmate »

Проверьте POST - там еще будет значение value от этой кнопки. И если делать его уникальным в пределах формы, то можно навешать кучу таких кнопок, но верно определять какая именно была нажата.
Осторожно! Вы общаетесь с новичком ;)
andreyrud
Сообщения: 265
Зарегистрирован: 2011.09.26, 14:59

Re: Form и submitButton. Как отличить нажатие submitButton?

Сообщение andreyrud »

Проверил. Параметры в POST ничем не отличаются по кнопке или по Ентеру. У меня форма одна (точнее это табличный ввод) и кнопка одна.
Аватара пользователя
girmate
Сообщения: 1534
Зарегистрирован: 2015.10.27, 12:52

Re: Form и submitButton. Как отличить нажатие submitButton?

Сообщение girmate »

andreyrud писал(а):Проверил. Параметры в POST ничем не отличаются по кнопке или по Ентеру. У меня форма одна (точнее это табличный ввод) и кнопка одна.
Все верно. Если кнопка одна, то никаких различий в POST не будет. Тут придется через JS отключать ввод по Enter.

Вот вам ссылка. Не проверял, но направление понятно: http://javascript.ru/forum/dom-window/1 ... enter.html.

Там есть цифра 13 - это код, который выдает кнопка Enter.
Осторожно! Вы общаетесь с новичком ;)
Onotole
Сообщения: 1808
Зарегистрирован: 2012.12.24, 12:49

Re: Form и submitButton. Как отличить нажатие submitButton?

Сообщение Onotole »

Код: Выделить всё

$(document).on("submit", "#myForm", function() {
    return false;
});
$(document).on("click", "#myButton", function() {
    // Some actions
    $("#myForm").submit();
});
 
Аватара пользователя
girmate
Сообщения: 1534
Зарегистрирован: 2015.10.27, 12:52

Re: Form и submitButton. Как отличить нажатие submitButton?

Сообщение girmate »

Onotole писал(а):

Код: Выделить всё

$(document).on("submit", "#myForm", function() {
    return false;
});
$(document).on("click", "#myButton", function() {
    // Some actions
    $("#myForm").submit();
});
Хорошее решение!
Осторожно! Вы общаетесь с новичком ;)
Ответить