[jQuery] Re: Select all controls of the form
I want to convert some existing code from traditional javascript for loop to $.each. Here is my code: var oEl = document.getElementById(my_form_id).elements; for(var i=0; i oEl.length; i++) { //do something } In jquery I have written a $.fn.extend function and the code as: $.fn.extend({ test: function() { //I want to filter only input controls from hte form var $this = $(this).filter(:input); $.each($this, function() { //do something }); } }) $(#my_form_id).test(); But it is not working. On Jan 13, 12:05 pm, Karl Rudd karl.r...@gmail.com wrote: Errr img elements aren't form controls. input type=image elements are but :input selects those. I'm not sure what you mean. Karl Rudd On Tue, Jan 13, 2009 at 5:43 PM, JQueryProgrammer jain.ashis...@gmail.com wrote: The above code selects all the controls except img tag. On Jan 13, 11:26 am, Karl Rudd karl.r...@gmail.com wrote: The '*' selector will select _all_ the nodes (including the br/s). Try using the ':input' selector: $(#form1 :input) http://docs.jquery.com/Selectors Karl Rudd On Tue, Jan 13, 2009 at 5:16 PM, JQueryProgrammer jain.ashis...@gmail.com wrote: I am trying to validate all the controls that exist in the form. My form code looks like: form id=form1 input type=text id=txt1 name=txt1 / br/ textarea name=txtArea id=txtArea cols=100 rows=4 / br/ select id=sel1 name=sel1 style=width: 250px; option value=Select/option option value=1One/option option value=2Two/option option value=3Three/option /select br/ input type=radio id=rdo1 name=rdo1 value=Option1nbsp;Option 1nbsp; br/ input type=radio id=rdo2 name=rdo1 value=Option2nbsp;Option 2nbsp; br/ button id=btn1Submit/button button id=btn2Reset/button /form I want to select only the controls of the form viz: textbox, textarea, select, radio button (Total 7). I am trying to extract them as $(#form1 *).each(function() { alert($(#+this).attr(id)); }) it gives me total 16 alerts. I want just 7. Any help..?
[jQuery] Re: Select all controls of the form
You shouldn't need to use $.extend in this case. Something like this should work: jQuery.fn.debug = function() { return this.each(function(){ alert(this); }); }; Taken from http://docs.jquery.com/Plugins/Authoring As for your selection code, you need to use find instead of filter. The filter removes non-matching elements, if you pass in a form element then it won't do what you want. The find function works on the child elements of the given elements, which is what you want. Karl Rudd On Tue, Jan 13, 2009 at 7:17 PM, JQueryProgrammer jain.ashis...@gmail.com wrote: I want to convert some existing code from traditional javascript for loop to $.each. Here is my code: var oEl = document.getElementById(my_form_id).elements; for(var i=0; i oEl.length; i++) { //do something } In jquery I have written a $.fn.extend function and the code as: $.fn.extend({ test: function() { //I want to filter only input controls from hte form var $this = $(this).filter(:input); $.each($this, function() { //do something }); } }) $(#my_form_id).test(); But it is not working. On Jan 13, 12:05 pm, Karl Rudd karl.r...@gmail.com wrote: Errr img elements aren't form controls. input type=image elements are but :input selects those. I'm not sure what you mean. Karl Rudd On Tue, Jan 13, 2009 at 5:43 PM, JQueryProgrammer jain.ashis...@gmail.com wrote: The above code selects all the controls except img tag. On Jan 13, 11:26 am, Karl Rudd karl.r...@gmail.com wrote: The '*' selector will select _all_ the nodes (including the br/s). Try using the ':input' selector: $(#form1 :input) http://docs.jquery.com/Selectors Karl Rudd On Tue, Jan 13, 2009 at 5:16 PM, JQueryProgrammer jain.ashis...@gmail.com wrote: I am trying to validate all the controls that exist in the form. My form code looks like: form id=form1 input type=text id=txt1 name=txt1 / br/ textarea name=txtArea id=txtArea cols=100 rows=4 / br/ select id=sel1 name=sel1 style=width: 250px; option value=Select/option option value=1One/option option value=2Two/option option value=3Three/option /select br/ input type=radio id=rdo1 name=rdo1 value=Option1nbsp;Option 1nbsp; br/ input type=radio id=rdo2 name=rdo1 value=Option2nbsp;Option 2nbsp; br/ button id=btn1Submit/button button id=btn2Reset/button /form I want to select only the controls of the form viz: textbox, textarea, select, radio button (Total 7). I am trying to extract them as $(#form1 *).each(function() { alert($(#+this).attr(id)); }) it gives me total 16 alerts. I want just 7. Any help..?
[jQuery] Re: Select all controls of the form
The '*' selector will select _all_ the nodes (including the br/s). Try using the ':input' selector: $(#form1 :input) http://docs.jquery.com/Selectors Karl Rudd On Tue, Jan 13, 2009 at 5:16 PM, JQueryProgrammer jain.ashis...@gmail.com wrote: I am trying to validate all the controls that exist in the form. My form code looks like: form id=form1 input type=text id=txt1 name=txt1 / br/ textarea name=txtArea id=txtArea cols=100 rows=4 / br/ select id=sel1 name=sel1 style=width: 250px; option value=Select/option option value=1One/option option value=2Two/option option value=3Three/option /select br/ input type=radio id=rdo1 name=rdo1 value=Option1nbsp;Option 1nbsp; br/ input type=radio id=rdo2 name=rdo1 value=Option2nbsp;Option 2nbsp; br/ button id=btn1Submit/button button id=btn2Reset/button /form I want to select only the controls of the form viz: textbox, textarea, select, radio button (Total 7). I am trying to extract them as $(#form1 *).each(function() { alert($(#+this).attr(id)); }) it gives me total 16 alerts. I want just 7. Any help..?
[jQuery] Re: Select all controls of the form
The above code selects all the controls except img tag. On Jan 13, 11:26 am, Karl Rudd karl.r...@gmail.com wrote: The '*' selector will select _all_ the nodes (including the br/s). Try using the ':input' selector: $(#form1 :input) http://docs.jquery.com/Selectors Karl Rudd On Tue, Jan 13, 2009 at 5:16 PM, JQueryProgrammer jain.ashis...@gmail.com wrote: I am trying to validate all the controls that exist in the form. My form code looks like: form id=form1 input type=text id=txt1 name=txt1 / br/ textarea name=txtArea id=txtArea cols=100 rows=4 / br/ select id=sel1 name=sel1 style=width: 250px; option value=Select/option option value=1One/option option value=2Two/option option value=3Three/option /select br/ input type=radio id=rdo1 name=rdo1 value=Option1nbsp;Option 1nbsp; br/ input type=radio id=rdo2 name=rdo1 value=Option2nbsp;Option 2nbsp; br/ button id=btn1Submit/button button id=btn2Reset/button /form I want to select only the controls of the form viz: textbox, textarea, select, radio button (Total 7). I am trying to extract them as $(#form1 *).each(function() { alert($(#+this).attr(id)); }) it gives me total 16 alerts. I want just 7. Any help..?
[jQuery] Re: Select all controls of the form
Errr img elements aren't form controls. input type=image elements are but :input selects those. I'm not sure what you mean. Karl Rudd On Tue, Jan 13, 2009 at 5:43 PM, JQueryProgrammer jain.ashis...@gmail.com wrote: The above code selects all the controls except img tag. On Jan 13, 11:26 am, Karl Rudd karl.r...@gmail.com wrote: The '*' selector will select _all_ the nodes (including the br/s). Try using the ':input' selector: $(#form1 :input) http://docs.jquery.com/Selectors Karl Rudd On Tue, Jan 13, 2009 at 5:16 PM, JQueryProgrammer jain.ashis...@gmail.com wrote: I am trying to validate all the controls that exist in the form. My form code looks like: form id=form1 input type=text id=txt1 name=txt1 / br/ textarea name=txtArea id=txtArea cols=100 rows=4 / br/ select id=sel1 name=sel1 style=width: 250px; option value=Select/option option value=1One/option option value=2Two/option option value=3Three/option /select br/ input type=radio id=rdo1 name=rdo1 value=Option1nbsp;Option 1nbsp; br/ input type=radio id=rdo2 name=rdo1 value=Option2nbsp;Option 2nbsp; br/ button id=btn1Submit/button button id=btn2Reset/button /form I want to select only the controls of the form viz: textbox, textarea, select, radio button (Total 7). I am trying to extract them as $(#form1 *).each(function() { alert($(#+this).attr(id)); }) it gives me total 16 alerts. I want just 7. Any help..?