2015-05-05 2 views
5

Ho ottenuto i valori delle opzioni da una query e l'ho aggiunto nell'elenco a discesa. ecco il codice:Come modificare il collegamento href con il valore dropdown

$(document).ready(function() { 
    $("#uname").focusout(function() { 
     $("#loader").show(); 
     var uname = $("#uname").val(), 
      v_request = $.ajax({ 
      url : "data/get_agent.php", 
      type : "POST", 
      dataType: "json", 
      data : { 
       uname : uname 
      } 
     }); 

     v_request.done(function(data, status, jqXHR) { 
      $("#application").empty(); 
      var option = document.createElement("option"), 
       select = document.getElementById("application"); 
       option.text = '-- Application --'; 
       option.value = ''; 
       select.appendChild(option); 

      $.each(data.data, function(key, data) { 
       var option = document.createElement("option"), 
        select = document.getElementById("application"); 
       option.text = data.appname; 
       option.value = data.appvalue; 
       select.appendChild(option); 
       if(data.defvalue == 1) 
        select.value = data.appvalue; 
      }); 
     }); 
    }) 
}); 

il valore di opzione contiene link URL, voglio chiamare in un tag href. codice:

<tr> 
    <td> 
     <select id="application" name="application"> 
     <option value=""> -- Application -- </option> 
     </select> 
    </td> 
</tr> 
<tr> 
    <td align="center" style="padding-top:10px;" id="logInBtn"> 
    <a id="link_combo" href="javascript:void(0);" onmouseout="MM_swapImgRestore()"><img src="resources/images/straclick-login.png" name="btn-login" border="0" width="280" id="btn-login" /></a> 
    </td> 
</tr> 

non so come inserire il valore di discesa in href.

+0

Devi usare '$ (" a "). Attr (" href "," http://www.google.com/ ")' per quello. – ketan

+0

controllare questo http://stackoverflow.com/questions/5150363/oscambio-open-url-via-select-jquery – kiran

+0

Utilizzare questo codice: $ ("# link_combo"). Attr ("href", "http://www.google.com/ "); – Lakhan

risposta

3

Basta aggiungere alla risposta di Barmar, ecco un esempio: http://jsbin.com/panacoqaje/1/ (avrei commentato, ma I don' t ancora 50 reputazione: P)

$("#application").change(function() { 
 
    console.log(this.value); 
 
    $("#link_combo").attr('href', this.value); 
 
    $("#link_combo").text($("#application option:selected").text()); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<tr> 
 
    <td> 
 
     <select id="application"> 
 
     <option value="http://google.com/">Google</option> 
 
     <option value="http://benzhang.xyz/">A Blog</option> 
 
     </select> 
 
    </td> 
 
</tr> 
 
<tr> 
 
    <td align="center" style="padding-top:10px;" id="logInBtn"> 
 
     A link to: 
 
    <a id="link_combo" href="#">Unicorn Land</a> 
 
    </td> 
 
</tr>

+0

grazie grazie !!! funziona – DimasW

+0

Felice che abbia aiutato! – Ben

+0

Assicurati di dare anche a Barmar un pollice in su, la sua risposta è perfettamente valida! – Ben

3

Utilizzare .val() per ottenere il valore del menu a discesa quando si fa clic sul collegamento.

$("#link_combo").click(function() { 
    var url = $("#application").val(); 
    if (url != "") { 
     window.location = url; 
    } 
}); 

O quando l'utente seleziona qualcosa dal menu a discesa, è possibile cambiare il href:

$("#application").change() { 
    var url = $(this).val(); 
    $("#link_combo").attr("href", url == "" ? "javascript:void(0)" : url); 
}); 
+0

grazie @Barmar! – DimasW