Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Javascript > checkbox to enable / disable hidden fields?

Reply
Thread Tools

checkbox to enable / disable hidden fields?

 
 
John
Guest
Posts: n/a
 
      09-10-2005
Hello.

I have a search form for music albums which among other things I need to
search all the song titles of the song. Normally in a search form I would
have checkboxes the user can use to select whether or not to search a given
field.

In this case it is not practical to have 20 checkboxes (each album can have
up to 20 song titles).

What I would rather do is have a single checkbox labeled "search song
titles" and have all the song title fields hidden and either enabled or
disabled as part of the search depending on the checked state of that check
box.

The hidden fields in question look like this:

<input type="hidden" name="SearchAdd_1" value="1">
<input type="hidden" name="SearchAdd_2" value="1">
etc
etc
all the way to
<input type="hidden" name="SearchAdd_20" value="1">

So if I simply put all those in the search form then it will search those
fields. Great. But how would I give the user the option to toggle them
off or on in one shot?

Thanks.
 
Reply With Quote
 
 
 
 
John
Guest
Posts: n/a
 
      09-10-2005
Sorry, should have been more specific. Yes, what I mean is I want them all
to not get sent along in the form. So effectively I need them to change
from:

<input type="hidden" name="SearchAdd_1" value="1">

to

<input type="hidden" name="SearchAdd_1" value="0">

If a checkbox is unchecked, and back to 1 if it is checked.

http://www.velocityreviews.com/forums/(E-Mail Removed) (Danny) wrote in
<1126325189.df999db5e087b893cbbc22d75bbbf24e@teran ews>:

>
> If the fields are 'hidden', there isn't much point on disabling
> them,
>unless you wish them disabled for them not to send along, which disabled
>fields do, you can do quite a few on an event like in this case, onclick
>on a checkbox, but you need to be specific on what you want, but is
>rather quite simple to do using a For loop.
>
>
> Danny
>


 
Reply With Quote
 
 
 
 
David Dorward
Guest
Posts: n/a
 
      09-10-2005
John wrote:

> I have a search form for music albums which among other things I need to
> search all the song titles of the song. Normally in a search form I would
> have checkboxes the user can use to select whether or not to search a
> given field.
>
> In this case it is not practical to have 20 checkboxes (each album can
> have up to 20 song titles).


I'd do this on the server:

Pseudo code:

if (defined $album_to_search) {
push @songs_to_search, get_list_of_song_ids_from_albumid($album_to_search );
}

Much more reliable, and it doesn't require you to shunt all the song names
to the client each time.

--
David Dorward <http://blog.dorward.me.uk/> <http://dorward.me.uk/>
Home is where the ~/.bashrc is
 
Reply With Quote
 
ASM
Guest
Posts: n/a
 
      09-10-2005
John wrote:
> Sorry, should have been more specific. Yes, what I mean is I want them all
> to not get sent along in the form. So effectively I need them to change
> from:
>
> <input type="hidden" name="SearchAdd_1" value="1">
>
> to
>
> <input type="hidden" name="SearchAdd_1" value="0">
>
> If a checkbox is unchecked, and back to 1 if it is checked.


<input type=checkbox onclick="SearchAdd_1.value= this.checked? 1 : 0;">

or to get true / false as value of SearchAdd_1 :

<input type=checkbox onclick="SearchAdd_1.value= this.checked;">


--
Stephane Moriaux et son [moins] vieux Mac
 
Reply With Quote
 
David Dorward
Guest
Posts: n/a
 
      09-10-2005
ASM wrote:

>> <input type="hidden" name="SearchAdd_1" value="0">
>>
>> If a checkbox is unchecked, and back to 1 if it is checked.

>
> <input type=checkbox onclick="SearchAdd_1.value= this.checked? 1 : 0;">


Most browsers don't automatically create, for each element with a name, a
variable with that name as a reference to that element.

onclick="this.form.elements['SearchAdd_1'].value ...

I still wouldn't use JavaScript to solve this problem though.

--
David Dorward <http://blog.dorward.me.uk/> <http://dorward.me.uk/>
Home is where the ~/.bashrc is
 
Reply With Quote
 
ASM
Guest
Posts: n/a
 
      09-10-2005
John wrote:
> Sorry, should have been more specific. Yes, what I mean is I want them all
> to not get sent along in the form. So effectively I need them to change
> from:
>
> <input type="hidden" name="SearchAdd_1" value="1">
>
> to
>
> <input type="hidden" name="SearchAdd_1" value="0">
>
> If a checkbox is unchecked, and back to 1 if it is checked.


function checkSongs(myForm,val) {
var f = myForm;
val = val? 1 : 0 ;
for(var i=0;i<f.legnth;i++)
if(f[i].name.indexOf('SearchAdd')==0) f[i].value = val;
}

Check or uncheck all :
<input type=checkbox onclick="checkSongs(this.form,this.checked)">

Uncheck all :
<input type=button onclick="checkSongs(this.form,false)" value=GO>


----------== other way ==--------

<form name="songsForm".... blah ....>
<p>Pre-selection :
all <input type=radio name="presel" onclick="wichSongs()">
some <input type=radio name="presel" onclick="wichSongs()">
any <input type=radio name="presel" onclick="wichSongs()">
<p class=sg><input type=checkbox name="SearchAdd_1" value="0"> Title 1
<p class=sg><input type=checkbox name="SearchAdd_2" value="0"> Title 2
<p class=sg><input type=checkbox name="SearchAdd_3" value="0"> Title 3
....
<p class=sg><input type=checkbox name="SearchAdd_20" value="0"> Title 20

function whichSongs() {
var f = document.songsForm;
var r = f.presel;
var j = 0;
for(var i=0;i<r.length;i++) if(r[i].checked) j=i;
var p = f.getElementsByTagName('P');
for(var i=1;i<p.length;i++) {
if(p[i].className=='sg') {
p[i].getElementsByTagName('INPUT')[0].checked=false;
p[i].getElementsByTagName('INPUT')[0].value=0;
if(j==2) p[i].style.display='none';
else p[i].style.display='';
if(j==0) {
p[i].getElementsByTagName('INPUT')[0].checked=true;
p[i].getElementsByTagName('INPUT')[0].value=1;
}
}
}
}

--
Stephane Moriaux et son [moins] vieux Mac
 
Reply With Quote
 
ASM
Guest
Posts: n/a
 
      09-10-2005
David Dorward wrote:
> ASM wrote:
>
>
>>><input type="hidden" name="SearchAdd_1" value="0">

[...]

> I still wouldn't use JavaScript to solve this problem though.


Yeap, but here we speak about JS
and I understood question was about JS

anyway JS is only an help an can't be used to do server's job.

--
Stephane Moriaux et son [moins] vieux Mac
 
Reply With Quote
 
Richard Cornford
Guest
Posts: n/a
 
      09-11-2005
ASM wrote:
> David Dorward wrote:

<snip>
>>>><input type="hidden" name="SearchAdd_1" value="0">

> [...]
>
>> I still wouldn't use JavaScript to solve this problem though.

>
> Yeap, but here we speak about JS
> and I understood question was about JS

<snip>

We may speak about JS here, but one of the things we are allowed to say
is that JS in an inappropriate technology for some tasks. I cannot see
anyone with a good understanding of server-side scripting (and
particularly the handling of form input with it, but that is probably
the first aspect of server-side scripting that anyone would learn) even
considering this. You just observe the state of the checkbox when the
request arrives at the server and act accordingly.

Richard.


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
single checkbox enable/disable dropdown Kevin Javascript 2 11-08-2006 09:27 PM
Select box options to disable/enable checkbox? bigrich Javascript 2 01-18-2006 02:26 AM
Put javascript enable/disable checkbox on firefox toolbar? ted@loft.tnolan.com (Ted Nolan Firefox 2 06-04-2005 07:01 PM
RE: enable/disable widgets with checkbox(TKinter) mark Python 0 11-04-2003 09:23 PM
enable/disable widgets with checkbox(TKinter) jwsacksteder@ramprecision.com Python 0 11-04-2003 08:39 PM



Advertisments