470,826 Members | 2,363 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 470,826 developers. It's quick & easy.

select listbox that does a form submit


Hi,

I'm trying to create a listbox using <select> HTML tags that can do
a form submit when an option in the list is selected. So far this works,
function MySelectSubmit() {
document.myform.submit();
}

with HTML:

<form name="myform" method="post" action="myselect">

<select name='myselect' size='1' onChange='MySelectSubmit()'>
<option value='hi' selected='selected' >Hello</option>
<option value='bye'>Goodbye</option>
</select>

</form>

Now my question is how can I make the javascript method general enough
so I can pass in any form so that it does not have to refere to "myform"
in the body. I tried the following but it doesn't work:

function MySelectSeubmit( aform ) {
document.aform.submit();
}

Thanks, Jason

Jul 20 '05 #1
2 8548
On Mon, 19 Jan 2004 10:23:41 -0800, Jason Novotny <no*****@aei.mpg.de>
wrote:
I'm trying to create a listbox using <select> HTML tags that can do
a form submit when an option in the list is selected. So far this works,
I don't quite know the wisdom of that; it depends on the content of the
SELECT box and how clear it is that the selection made is final. What if
the user makes a mistake?
Now my question is how can I make the javascript method general enough
so I can pass in any form so that it does not have to refere to "myform"
in the body.


It depends what you are passing to the method. If it is a reference to the
form object, you can do:

function mySubmit( myForm ) {
myForm.submit();
}

If you are passing the name of the form, you'll need to do:

function mySubmit( myForm ) {
document.forms[ myForm ].submit();
}

Mike

--
Michael Winter
M.******@blueyonder.co.invalid (replace ".invalid" with ".uk" to reply)
Jul 20 '05 #2
Lee
Jason Novotny said:


Hi,

I'm trying to create a listbox using <select> HTML tags that can do
a form submit when an option in the list is selected. So far this works,
function MySelectSubmit() {
document.myform.submit();
}

with HTML:

<form name="myform" method="post" action="myselect">

<select name='myselect' size='1' onChange='MySelectSubmit()'>
<option value='hi' selected='selected' >Hello</option>
<option value='bye'>Goodbye</option>
</select>

</form>

Now my question is how can I make the javascript method general enough
so I can pass in any form so that it does not have to refere to "myform"
in the body. I tried the following but it doesn't work:

function MySelectSeubmit( aform ) {
document.aform.submit();
}


Only the first component of a dot-notation identifier may be a
variable. If aform is a variable containing the name of the
form, you can use:

document.forms[aform].submit();

but it would be even simpler to pass a reference to the form,
instead of its name. You would pass it with:

onChange='MySelectSubmit(this.form)'

Note that "this.form" is exactly what you would use. Don't
replace any part of it with your own names. It's a built-in
reference to the form that contains the form element that the
event handler belongs to.

Then your function would look like:

function MySelectSubmit( aform ) {
aform.submit();
}

Since "aform" is now a reference directly to the form, you
don't need to qualify it with the document reference.

Jul 20 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

1 post views Thread by Bruce | last post: by
5 posts views Thread by Melissa Cowan | last post: by
1 post views Thread by sab | last post: by
10 posts views Thread by Mr Newbie | last post: by
1 post views Thread by kevin | last post: by
Frinavale
13 posts views Thread by Frinavale | last post: by
reply views Thread by mihailmihai484 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.