2015-05-05 9 views
5

Otrzymałem wartości opcji z zapytania i dodałem do listy rozwijanej. tutaj jest kod:Jak zmienić link href z wartością rozwijaną

$(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; 
      }); 
     }); 
    }) 
}); 

wartość opcji zawiera link URL, chcę go wywołać w tagu href. tutaj kod:

<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> 

Nie wiem jak wstawić rozwijaną wartość do href.

+0

Musisz użyć '$ (" a "). Attr (" href "," http://www.google.com/ ")" do tego. – ketan

+0

sprawdź ten http://stackoverflow.com/questions/5150363/onchange-open-url-via-select-jquery – kiran

+0

Użyj tego kodu: $ ("# link_combo"). Attr ("href", "http://www.google.com/ "); – Lakhan

Odpowiedz

3

Wystarczy dodać do odpowiedzi Barmar, oto przykład: http://jsbin.com/panacoqaje/1/ (bym skomentował, ale don” t jeszcze 50 reputacji: 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

thank youuu !!! działa – DimasW

+0

Cieszę się, że pomogło! – Ben

+0

Pamiętaj, aby dać Barmarowi kciuk w górę, jego odpowiedź jest całkowicie ważna! – Ben

3

Użyj wartości .val(), aby uzyskać wartość z rozwijanego menu po kliknięciu łącza.

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

lub gdy użytkownik wybierze coś z menu, można zmienić href:

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

dziękuję @Barmar! – DimasW