Передача нескольких значений формы с помощью наблюдаемого поля? (JQuery эквивалентный Form.Element.serialize) - PullRequest
0 голосов
/ 13 июля 2009

У меня есть форма с двумя текстовыми полями:

<input type="text" id="post_name" name="post[name]" />
<input type="text" id="post_email" name="post[email]" />

И у меня есть поле наблюдения_ в поле ввода имени, но я также хочу передать ему значение электронной почты. В прототипе это делается через:

<%= observe_field :post_name, 
:url => { :controller => :live_validations, :action => :validate_name },
:frequency => 0.5,
:update => :post_name_message,
:with => "Form.Element.serialize('post_name','post_email')" %>

Но я использую JRails. Есть ли JQuery, эквивалентный Form.Element.serialize? В основном это что-то, что позволяет получить значения обоих полей ввода и присвоить их переменной.

Больше информации об этом помощнике здесь: http://api.rubyonrails.org/classes/ActionView/Helpers/PrototypeHelper.html#M001939

Ответы [ 3 ]

2 голосов
/ 20 августа 2009

Вот простой способ сделать это - заменить $ ('post_name') тем, что JQuery использует для вызова getElementById () (я думаю, что он использует тот же синтаксис, что и прототип?)

observe_field( :post_email, ..., 
:with => "'post_email='+encodeURIComponent(value)+'&post_name='+encodeURIComponent($('post_name').value)" %>
0 голосов
/ 13 июля 2009

JQuery имеет команду serialize (); он работает с набором полей, которые были определены с помощью селектора jQuery (или в форме, как в примере с algiecas).

Так что в вашем случае вам понадобится какой-то селектор, который определяет все поля и только те поля, которые вы хотите сериализовать. Это может быть так же просто, как «сериализовать все поля ввода» ($ («input»). Serialize ();) или может потребовать добавления разметки, например размещения div с идентификатором вокруг полей, которые вас интересуют.

0 голосов
/ 13 июля 2009
$("form").serialize();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...