Reputation: 56
I have this specific requirement to open different URL on new tab/page based on selection of Dropdown HTML menu. The action of opening the page should happen on selection of option from list instead of having any button. Basically the url should open with the option selected at the end so user can land to specific page. Please find my code below and suggest the solution. Thanks in Advance.
<script type="text/javascript">
function run(){
var v1 = document.getElementById("val").value;
var v2 = document.getElementById('input1').value;
function () {
if (v1=="1") {window.open("URL" + v1 + "/" + v2, '_blank')}
else if (v1=="2") {window.open("URL" + v1 + "/" + v2, '_blank')}
else {alert("");}
return false
};
}
</script>
<input type="text" id="input1" style="width: 100px;" />
<select id="val" onchange="run()">
<option value="" selected="selected">Select</option>
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
<option value="4">Option 4</option>
<option value="5">Option 5</option>
</select>
Upvotes: 0
Views: 1953
Reputation: 33
function run(){
var v1 = document.getElementById("val").value;
var v2 = document.getElementById('input1').value;
if (v1=="1") {window.open("URL" + v1 + "/" + v2, '_blank');}
else if (v1=="2") {window.open("URL" + v1 + "/" + v2, '_blank');}
else {alert("");}
return false;
}
Just remove the inner function() bracket in your run() function.
Upvotes: 0
Reputation: 166
You don't require a anonymous function inside a function.
Your code will be like this
<script type="text/javascript">
function run()
{
var v1 = document.getElementById("val").value;
var v2 = document.getElementById('input1').value;
if (v1=="1")
{
window.open("URL" + v1 + "/" + v2, '_blank')
}
else if (v1=="2")
{
window.open("URL" + v1 + "/" + v2, '_blank')
}
else
{
alert("Option Doesn't match");
}
return false;
}
</script>
Upvotes: 0
Reputation: 2439
Please remove the Function() from middle.
<script type="text/javascript">
function run(){
var v1 = document.getElementById("val").value;
var v2 = document.getElementById('input1').value;
if (v1=="1") {window.open("URL" + v1 + "/" + v2, '_blank')}
else if (v1=="2") {window.open("URL" + v1 + "/" + v2, '_blank')}
else {alert("Option Doesn't match");}
return false;
}
</script>
<input type="text" id="input1" style="width: 100px;" />
<select id="val" onchange="run()">
<option value="" selected="selected">Select</option>
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
<option value="4">Option 4</option>
<option value="5">Option 5</option>
</select>
Upvotes: 1