onselect open new window

R

Rob Wahmann

I'm having trouble with the following code appending the form name and an
empty value to the end of the url. Can anyone tell me what's wrong? I
appreciate any tips or advice you can pass along!

Rob

// submits info like this: http://www.google.com/?select=

<script type="text/javascript">
function launchIt() {
var form = document.search;
var select = form.select;
var option = select.options[select.selectedIndex];

select.selectedIndex = 0;
form.target = option.getAttribute('name');
form.action = option.value;
form.submit();
//form.target = '';
//form.action = '';
}
</script>

<form method="get" name="search">
<select name="select" onChange="launchIt()" style="font-size:9px">
<option value="">Select Service</option>
<option value="http://www.google.com/" name="google">Google</option>
<option value="http://www.hotbot.com/" name="hotbot">Hotbot</option>
</select>
</form>
 
L

Lee

Rob Wahmann said:
I'm having trouble with the following code appending the form name and an
empty value to the end of the url. Can anyone tell me what's wrong? I
appreciate any tips or advice you can pass along!

Rob

// submits info like this: http://www.google.com/?select=

That's what happens when you submit a form using "get".
Your form elements and their values are appended to the URL.

In this case, your only form element is named "select", and
its value is "".

It looks like you don't really want to submit anything, just
open a window, so you should be using something more like:

<script type="text/javascript">
function launchIt(select) {
var option = select.options[select.selectedIndex];
window.open(option.value,option.getAttribute('name'));
}
</script>

<form method="get" name="search">
<select name="select" onChange="launchIt(this)" style="font-size:9px">
<option value="">Select Service</option>
<option value="http://www.google.com/" name="google">Google</option>
<option value="http://www.hotbot.com/" name="hotbot">Hotbot</option>
</select>
</form>
 
R

Rob Wahmann

That works great! I should have been clearer in my last message... I knew
why it was happening but I didn't know how to resolve it. Thanks for the
assistance.

I have only one more question... How can I make the form do nothing if the
option value is empty ""? Thanks again for your help!

Rob

Lee said:
Rob Wahmann said:
I'm having trouble with the following code appending the form name and an
empty value to the end of the url. Can anyone tell me what's wrong? I
appreciate any tips or advice you can pass along!

Rob

// submits info like this: http://www.google.com/?select=

That's what happens when you submit a form using "get".
Your form elements and their values are appended to the URL.

In this case, your only form element is named "select", and
its value is "".

It looks like you don't really want to submit anything, just
open a window, so you should be using something more like:

<script type="text/javascript">
function launchIt(select) {
var option = select.options[select.selectedIndex];
window.open(option.value,option.getAttribute('name'));
}
</script>

<form method="get" name="search">
<select name="select" onChange="launchIt(this)" style="font-size:9px">
<option value="">Select Service</option>
<option value="http://www.google.com/" name="google">Google</option>
<option value="http://www.hotbot.com/" name="hotbot">Hotbot</option>
</select>
</form>
 
R

Randy Webb

Rob said:
That works great! I should have been clearer in my last message... I knew
why it was happening but I didn't know how to resolve it. Thanks for the
assistance.

I have only one more question... How can I make the form do nothing if the
option value is empty ""? Thanks again for your help!


<script type="text/javascript">
function launchIt(select) {
var option = select.options[select.selectedIndex];
if (option != ''){
window.open(option.value,option.getAttribute('name'));
}
}
</script>
 
R

Rob Wahmann

Hmm... I see where you're going with this but it still allows me to submit
empty values. Thanks for the assistance!

Rob
 
R

Randy Webb

Rob Wahmann wrote:

Top posting fixed - please read the FAQ with regards to top-posting,
quoting and snipping.
<script type="text/javascript">
function launchIt(select) {
var option = select.options[select.selectedIndex];
if (option != ''){
window.open(option.value,option.getAttribute('name'));
}
}
</script>
Hmm... I see where you're going with this but it still allows me to submit
empty values. Thanks for the assistance!

"submit empty values" ?? You are not submitting a form, you are simply
opening a new window with a URL parameter. The parameter happens to be a
variable scenario that mimics a form post. To verify that, put an
onsubmit="alert('I am submitting')" on the form and see if you see it.
Using the above script, you won't. And as written, its not even
appending the variables, its simply opening a new window with the URL
set to the select value, and the name of the window being the same as
the "name" attribute of the option that was chosen at the time.

Perhaps a little more explanation of what you are trying to do?
Submitting a search to google takes a little more than what you are doing.
 
R

Rob Wahmann

Rob Wahmann said:
Randy Webb said:
Rob Wahmann wrote:

Top posting fixed - please read the FAQ with regards to top-posting,
quoting and snipping.
<script type="text/javascript">
function launchIt(select) {
var option = select.options[select.selectedIndex];
if (option != ''){
window.open(option.value,option.getAttribute('name'));
}
}
</script>
Hmm... I see where you're going with this but it still allows me to submit
empty values. Thanks for the assistance!

"submit empty values" ?? You are not submitting a form, you are simply
opening a new window with a URL parameter. The parameter happens to be a
variable scenario that mimics a form post. To verify that, put an
onsubmit="alert('I am submitting')" on the form and see if you see it.
Using the above script, you won't. And as written, its not even
appending the variables, its simply opening a new window with the URL
set to the select value, and the name of the window being the same as
the "name" attribute of the option that was chosen at the time.

Perhaps a little more explanation of what you are trying to do?
Submitting a search to google takes a little more than what you are doing.

Sorry for any mistakes in posting to this thread (no professional news
poster here but i do appreciate the help). The empty value I'm referring to
is shown below. I want the ability to categorize options and not allow
windows to be launched where the value is "". If you select "Select Service"
below you'll see that a new window is launched to your default browser home
page. Instead, I would like for the form to do nothing. I'm toying around
with this but I greatly appreciate anyone's advice.

<option value="" name="select">Select Service</option> <!-- this has an
empty value "" -->
<option value="http://www.anydomain.com/"
name="anydomain">Anywhere said:
<option value="http://www.whocares.com/" name="whocares">Who
Cares said:
TIA - Rob

function launchIt(select) {
var option = select.options[select.selectedIndex];
if (option.getAttribute('name') != ''){
window.open(option.value,option.getAttribute('name'));
}
}

Call me crazy but I believe I may have fixed this myself... The value or the
name can empty and that's fine with me. The script above seems to work.
Thanks again!

Rob
 
R

Randy Webb

Rob Wahmann wrote:

Call me crazy but I believe I may have fixed this myself... The value or the
name can empty and that's fine with me. The script above seems to work.
Thanks again!

Glad you got it working.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,904
Latest member
HealthyVisionsCBDPrice

Latest Threads

Top