Можете ли вы контролировать значение submit
в скрытом поле в форме?Я не могу сказать, какая другая логика вам может понадобиться, но когда форма отображается, вы можете установить значение скрытого поля в значение кнопки отправки и изменить его при необходимости, используя первый скрипт ниже.Пока у него есть атрибут name
и он включен (что вы редко отключаете скрытое поле), он будет публиковаться при отправке формы.
$(function() {
// this assumes your button has id="myButton" attribute
$(':hidden[name="submit"]').val($('#myButton').val());
});
И, конечно, в вашей форме,вам понадобится скрытое поле с именем = "submit"
<input type="hidden" name="submit" value="Continue" />
Затем, когда меняется состояние вашей формы, изменяйте отключенное состояние кнопки и значение скрытогополе для отображения значения (если оно вообще изменилось).
Существуют также рамки, которые могут оказаться полезными для таких функций пользовательского интерфейса, как этот. KnockoutJS приходит на ум.Его можно использовать для «привязки» значений элементов ввода.Это, вероятно, излишне для этого небольшого примера, но может быть полезно, если ваш пользовательский интерфейс расширяется.Я добавил разметку, скрипт и комментарии ниже, если вам интересно.
$(function () {
var viewModel = {
submitValue: ko.observable("Continue")
};
ko.applyBindings(viewModel);
$('form').submit(function() {
if($(this).valid()) {
// the following line will change the both the hidden field's value
// as well as the button's value attribute
viewModel.submitValue("some other value");
// I couldn't follow your selector here, but please note I changed
// the name of the submit button in the markup below.
$(':submit, this).attr('disabled', 'disabled');
}
});
});
KnockoutJS требует, чтобы вы использовали атрибут data-bind
для настройки своих элементов.В вашем случае вы бы привязали одно свойство к нескольким элементам, например так:
<button name="submitButton" data-bind="value: submitValue"/>Continue</button>
<!-- and bind the same value similarly in the hidden field-->
<input type="hidden" name="submit" data-bind="value: submitValue"/>