Переустановка приложения для направляющих на новом сервере. Часть приложения может подцепить одно на вилку из двух направлений на основе кнопки, которую нажимает пользователь. Эта часть не работает, и когда я смотрю на журнал, я вижу значения, что я дал форму, execept для commit
часть хеша параметрических усилителей. Это, кажется, почему приложение не работает как ожидалось (так как нет ничего в params[:commit]
, но я понятия не имею, почему фиксация не была бы передана в; запрос является определенно запросом POST, и все другие параметры там.
Имелась аналогичная проблема с функцией отключения кнопки при отправке. Мы решили это, добавив скрытое поле ввода с тем же именем и значением перед отправкой формы.
function disableButtonAndSubmit()
{
var input = $("<input type='hidden' />").attr("name", $(this)[0].name).attr("value", $(this)[0].value);
$(this).closest('form').append(input);
$(this).attr('disabled', 'disabled').html('Loading…');
$(this).closest('form').submit();
}
$('#somewhere button').click(disableButtonAndSubmit);
Убедитесь, что ваш ввод с именем коммита, иначе его метка не будет отправлена.
В результате html должен быть:
<input type="submit" name="commit" label="...>
Некоторое время назад я изучал нечто подобное, где есть несоответствие в том, как разные браузеры передают значение кнопки отправки на форму. Единственным практическим решением было наличие javascript в кнопке для установки скрытого поля, и использование этого значения вместо него.
Вот некоторые из моих кодов, которые различают сохранение и выход, которые идут в одну сторону, и сохранение и продолжение, которые идут в другую:
<%= hidden_field_tag 'step_commit', '' %>
<span style="float:left;">
<%=submit_tag 'Cancel', :name=>'cancel', :onclick=>"javascript:location.href='/';return false;" %>
<%=submit_tag 'Save and Exit', :name=>'exit', :onclick=>"javascript:$('step_commit').value='exit';" %>
</span>
<span style="float:right;">
<%=submit_tag 'Save and Continue', :name=>'continue', :onclick=>"javascript:$('step_commit').value='continue';" %>
</span>