2016-07-04 10 views
0

Ich brauche den Optionswert, um das action-Attribut im Formular auszufüllen, damit es eine Website öffnen kann. Mein Code funktioniert nicht. Was fehlt, um den Prozess abzuschließen?Wie man das select-Option-Tag das action-Attribut mit einer URL füllt, so dass es diese Website öffnen kann

<form action=" " name="test"> 
<select name="url"> 
    <option value="google">google</option> 
    <option value="yahoo">yahoo</option> 
</select> 
<input type="submit"/> 
</form> 

<script> 
$("form").submit(function() { 
var selectVal = $('select').value(); 
var url = ''; 
    if(selectVal == "google") url = 'http://www.google.com'; 
    else if(selectVal == "yahoo") url = 'http://www.yahoo.com'; 

    if(url != ''){ 
    window.open(url, '_blank'); 
    } 
    }); 
</script> 

Antwort

0

Vielleicht versuchen:

$('form').on('click', '[type=submit]', function(e) { 
    e.preventDefault(); 
    // Get the selection option val 
    var form = $(this).parents('form'); 
    var selectVal = $form.find('select').find(':selected').val(); 
    var url = ''; 
    switch (selectVal) { 
     case 'google': 
      url = 'google.com'; 
     break; 
     case 'yahoo': 
      url = 'yahoo.com'; 
     break; 
    } 

    if (url) { 
     form.attr('action', url); 
     form.submit(); 
    } 
}) 

Hoffnung, das hilft!

+0

Bene, dass JavaScript-Code keine Aktion zugewiesen hatte. –

+0

Sorry, ich habe total missverstanden, wahrscheinlich wegen der "window.open()", die viel zu weit weg von der Einstellung der Formularaktion für mich zu verstehen war. Ich habe die Terminbindung geändert, um das zu tun, was du gerade gefragt hast. Dies ist gebunden an "Form" und sollte IDs oder Klassen verwenden, oder ALLE Formen werden auf diese Weise handeln. – Bene

0

Ich brauche den Optionswert, um das Aktionsattribut in das Formular einzugeben, damit es eine Website öffnen kann. Mein Code funktioniert nicht. Was fehlt, um den Prozess abzuschließen?

<form action=""> 
<select name="url"> 
    <option value="https://www.google.com">google</option> 
    <option value="https://www.yahoo.com">yahoo</option> 
</select> 
    <input type="submit"/> 
</form> 

<script> 
    function SetData(){ 
    var select = document.getElementById('url'); 
    var test_id = select.options[select.selectedIndex].value; 
    document.form.action = test_id; 
    form.submit(); 
    } 
</script>