Лучший способ привязки события onchange к каждому полю формы с использованием Rails 3, UJS / jQuery - PullRequest
0 голосов
/ 11 ноября 2011

Я хочу сделать отправку формы для каждого onchange() события поля формы, чтобы получить «счетчик результатов поиска в реальном времени» в отдельном поле css. (Как и здесь , когда вы изменяете какое-либо значение поля формы, вы получаете немедленное изменение «счет результатов поиска» в правом поле css)

Каков наилучший (самый простой) способ сделать это?

PS . вопрос касается техники, потому что я знаю, как сделать это «вручную», но у меня есть 10+ полей разных типов (select / select-множественный / флажок), и это не удобно для работы таким образом.

Спасибо

1 Ответ

0 голосов
/ 11 ноября 2011
$('input, select').change(function() {
    var params = {};
    params[this.name] = this.value;
    $.post('yourFieldHandlingUrl.rb', params);
});

конечно, это минимализм, вы можете добавить ajax success / error processing.

Например, для ваших автомобилей это означает, что состояние других ящиков хранится на сервере, обычно в сеансе.В противном случае вы можете получить возможные комбинации внутри javascript при сборке страницы.Но лучший способ - это, конечно, отправить все входные данные для пересчета значения.Это легко сделать с чем-то вроде этого:

$('input, select').change(function() {
    var params = {};
    $(this).closest('div.inputsContainer').each( function () {
        params[this.name] = this.value;
    });
    $.post('yourFieldHandlingUrl.rb', params);
});
...