Hiren
Hiren

Reputation: 56

Javascript to open specific URL on dropdown select

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

Answers (3)

l33t
l33t

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

Vaibhav Bhootna
Vaibhav Bhootna

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

Moiz
Moiz

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

Related Questions