Is it at all possible to serialize only elements on a form using the $
$ selector?
For example:
...
<tbody>
<tr id="row_1" class="new_row">
<td>
<input type="text" name="data[item]" />
</td>
</tr>
<tr id="row_2" class="new_row">
<td>
<input type="text" name="data[item]" />
</td>
</tr>
</tbody>
...
And then using prototype to serialize each row:
Form.serialize($(''form'').getElements($$(''#row_1''));
Form.serialize($(''form'').getElements($$(''#row_2''));
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Spinoffs" group.
To post to this group, send email to
rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-spinoffs?hl=en
-~----------~----~----~----~------~----~------~--~---
Okay, this seems to work. I''m not sure if its the most effective way
though.
<html>
<head>
<script type="text/javascript"
src="prototype.js"></script>
</head>
<body>
<form id="test">
<table>
<thead>
<tr>
<th>Input 1</th>
<th>Input 2</th>
<th>Input 3</th>
</tr>
</thead>
<tbody>
<tr id="row_1">
<td>
<input class="row_data"
type="text"
name="data[item][0]" value="abc1" />
</td>
<td>
<input class="row_data"
type="text"
name="data[item][1]" value="abc2" />
</td>
<td>
<input class="row_data"
type="text"
name="data[item][2]" value="abc3" />
</td>
<td>
<a href="#" onclick="getRow($
(''row_1''));">Serialize Row</a>
</td>
</tr>
<tr id="row_2">
<td>
<input class="row_data"
type="text"
name="data[item][0]" value="abc4" />
</td>
<td>
<input class="row_data"
type="text"
name="data[item][1]" value="abc5" />
</td>
<td>
<input class="row_data"
type="text"
name="data[item][2]" value="abc6" />
</td>
<td>
<a href="#" onclick="getRow($
(''row_2''));">Serialize Row</a>
</td>
</tr>
</tbody>
</table>
</form>
<script type="text/javascript">
getRow = function(row) {
alert(Form.serializeElements($(row).descendants()));
}
</script>
</body>
</html>
On Jun 24, 8:48 am, Travis
<Travis.Pax...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
wrote:> Is it at all possible to serialize only elements on a form using the $
> $ selector?
>
> For example:
>
> ...
> <tbody>
> <tr id="row_1" class="new_row">
> <td>
> <input type="text" name="data[item]" />
> </td>
> </tr>
> <tr id="row_2" class="new_row">
> <td>
> <input type="text" name="data[item]" />
> </td>
> </tr>
> </tbody>
> ...
>
> And then using prototype to serialize each row:
>
>
Form.serialize($(''form'').getElements($$(''#row_1''));
>
Form.serialize($(''form'').getElements($$(''#row_2''));
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Spinoffs" group.
To post to this group, send email to
rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-spinoffs?hl=en
-~----------~----~----~----~------~----~------~--~---
ew inline event handler! I haven''t seen that in a while...I think you
could have an easier time doing something like this...
$$("form tr a").each(function(anchor){
var pRow = anchor.up("tr");
anchor.observe("click", function(e){
alert(Form.serializeElements(pRow.select("input, select,
textarea"));
});
});
Unfortunately you lose a lot of the convenient form references like
"elements" that access all possible form input objects. I tried to
recreate this with the select method http://prototypejs.org/api/element/select
I am not sure on your entire scope but it might be a worthwhile
approach to segregate the form into many "mini-forms" that only
contain the elements you''re after.
This little diddy will give you a collection of each row''s input
object''s serialized, could be handy...
arr = $$("form tr").collect(function(row){
Form.serializeElements(row.select("input, select, textarea"));
});
--
Matt Foster
Ajax Engineer
Nth Penguin, LLC
http://www.nthpenguin.com
On Jun 24, 11:26 am, Travis
<Travis.Pax...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
wrote:> Okay, this seems to work. I''m not sure if its the most effective
way
> though.
>
> <html>
> <head>
> <script type="text/javascript"
src="prototype.js"></script>
> </head>
> <body>
> <form id="test">
> <table>
> <thead>
> <tr>
> <th>Input 1</th>
> <th>Input 2</th>
> <th>Input 3</th>
> </tr>
> </thead>
> <tbody>
> <tr id="row_1">
> <td>
> <input class="row_data"
type="text"
> name="data[item][0]" value="abc1" />
> </td>
> <td>
> <input class="row_data"
type="text"
> name="data[item][1]" value="abc2" />
> </td>
> <td>
> <input class="row_data"
type="text"
> name="data[item][2]" value="abc3" />
> </td>
> <td>
> <a href="#" onclick="getRow($
> (''row_1''));">Serialize Row</a>
> </td>
> </tr>
> <tr id="row_2">
> <td>
> <input class="row_data"
type="text"
> name="data[item][0]" value="abc4" />
> </td>
> <td>
> <input class="row_data"
type="text"
> name="data[item][1]" value="abc5" />
> </td>
> <td>
> <input class="row_data"
type="text"
> name="data[item][2]" value="abc6" />
> </td>
> <td>
> <a href="#" onclick="getRow($
> (''row_2''));">Serialize Row</a>
> </td>
> </tr>
> </tbody>
> </table>
> </form>
> <script type="text/javascript">
> getRow = function(row) {
> alert(Form.serializeElements($(row).descendants()));
> }
> </script>
> </body>
> </html>
>
> On Jun 24, 8:48 am, Travis
<Travis.Pax...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>
> > Is it at all possible to serialize only elements on a form using the $
> > $ selector?
>
> > For example:
>
> > ...
> > <tbody>
> > <tr id="row_1" class="new_row">
> > <td>
> > <input type="text" name="data[item]"
/>
> > </td>
> > </tr>
> > <tr id="row_2" class="new_row">
> > <td>
> > <input type="text" name="data[item]"
/>
> > </td>
> > </tr>
> > </tbody>
> > ...
>
> > And then using prototype to serialize each row:
>
> >
Form.serialize($(''form'').getElements($$(''#row_1''));
> >
Form.serialize($(''form'').getElements($$(''#row_2''));
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Spinoffs" group.
To post to this group, send email to
rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-spinoffs?hl=en
-~----------~----~----~----~------~----~------~--~---
In rereading this i noticed a big error, you''ll have to put a return
on that collect method, my bad...
arr = $$("form tr").collect(function(row){
return Form.serializeElements(row.select("input, select,
textarea"));
});
--
Matt Foster
Ajax Engineer
Nth Penguin, LLC
http://www.nthpenguin.com
On Jun 25, 12:08 pm, Matt Foster
<mattfoste...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
wrote:> ew inline event handler! I haven''t seen that in a while...I think
you
> could have an easier time doing something like this...
>
> $$("form tr a").each(function(anchor){
> var pRow = anchor.up("tr");
> anchor.observe("click", function(e){
> alert(Form.serializeElements(pRow.select("input, select,
> textarea"));
> });
>
> });
>
> Unfortunately you lose a lot of the convenient form references like
> "elements" that access all possible form input objects. I tried
to
> recreate this with the select
methodhttp://prototypejs.org/api/element/select
>
> I am not sure on your entire scope but it might be a worthwhile
> approach to segregate the form into many "mini-forms" that only
> contain the elements you''re after.
>
> This little diddy will give you a collection of each row''s input
> object''s serialized, could be handy...
> arr = $$("form tr").collect(function(row){
> Form.serializeElements(row.select("input, select,
textarea"));
>
> });
>
> --
> Matt Foster
> Ajax Engineer
> Nth Penguin, LLChttp://www.nthpenguin.com
>
> On Jun 24, 11:26 am, Travis
<Travis.Pax...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>
> > Okay, this seems to work. I''m not sure if its the most
effective way
> > though.
>
> > <html>
> > <head>
> > <script type="text/javascript"
src="prototype.js"></script>
> > </head>
> > <body>
> > <form id="test">
> > <table>
> > <thead>
> > <tr>
> > <th>Input 1</th>
> > <th>Input 2</th>
> > <th>Input 3</th>
> > </tr>
> > </thead>
> > <tbody>
> > <tr id="row_1">
> > <td>
> > <input class="row_data"
type="text"
> > name="data[item][0]" value="abc1" />
> > </td>
> > <td>
> > <input class="row_data"
type="text"
> > name="data[item][1]" value="abc2" />
> > </td>
> > <td>
> > <input class="row_data"
type="text"
> > name="data[item][2]" value="abc3" />
> > </td>
> > <td>
> > <a href="#"
onclick="getRow($
> > (''row_1''));">Serialize Row</a>
> > </td>
> > </tr>
> > <tr id="row_2">
> > <td>
> > <input class="row_data"
type="text"
> > name="data[item][0]" value="abc4" />
> > </td>
> > <td>
> > <input class="row_data"
type="text"
> > name="data[item][1]" value="abc5" />
> > </td>
> > <td>
> > <input class="row_data"
type="text"
> > name="data[item][2]" value="abc6" />
> > </td>
> > <td>
> > <a href="#"
onclick="getRow($
> > (''row_2''));">Serialize Row</a>
> > </td>
> > </tr>
> > </tbody>
> > </table>
> > </form>
> > <script type="text/javascript">
> > getRow = function(row) {
> > alert(Form.serializeElements($(row).descendants()));
> > }
> > </script>
> > </body>
> > </html>
>
> > On Jun 24, 8:48 am, Travis
<Travis.Pax...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>
> > > Is it at all possible to serialize only elements on a form using
the $
> > > $ selector?
>
> > > For example:
>
> > > ...
> > > <tbody>
> > > <tr id="row_1" class="new_row">
> > > <td>
> > > <input type="text"
name="data[item]" />
> > > </td>
> > > </tr>
> > > <tr id="row_2" class="new_row">
> > > <td>
> > > <input type="text"
name="data[item]" />
> > > </td>
> > > </tr>
> > > </tbody>
> > > ...
>
> > > And then using prototype to serialize each row:
>
> > >
Form.serialize($(''form'').getElements($$(''#row_1''));
> > >
Form.serialize($(''form'').getElements($$(''#row_2''));
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Spinoffs" group.
To post to this group, send email to
rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-spinoffs?hl=en
-~----------~----~----~----~------~----~------~--~---