Was wäre der beste Weg, um ein Ereignis so bei Änderung einer Auswahloption eine URL anzuhängen. Speichern Sie die href in einem attr und greifen Sie sie beim Wechsel?
Was wäre der beste Weg, um ein Ereignis so bei Änderung einer Auswahloption eine URL anzuhängen. Speichern Sie die href in einem attr und greifen Sie sie beim Wechsel?
Antworten:
Es ist ziemlich einfach, sehen wir uns ein funktionierendes Beispiel an:
<select id="dynamic_select">
<option value="" selected>Pick a Website</option>
<option value="http://www.google.com">Google</option>
<option value="http://www.youtube.com">YouTube</option>
<option value="https://www.gurustop.net">GuruStop.NET</option>
</select>
<script>
$(function(){
// bind change event to select
$('#dynamic_select').on('change', function () {
var url = $(this).val(); // get selected value
if (url) { // require a URL
window.location = url; // redirect
}
return false;
});
});
</script>
.
on
mit bind
..
$('#dynamic_select').on('change', function () {
bind
nicht abgeschrieben wird. Da ich diesen Kommentar jedoch fast einen Tag nach dem Entfernen erhalten habe, habe ich ihn jetzt zurückgesetzt.
return false
, wird die ausgewählte Option dort beibehalten.
Ich denke, das ist der einfachste Weg:
<select onchange="if (this.value) window.location.href=this.value">
<option value="">Pick one:</option>
<option value="/foo">Foo</option>
<option value="/bar">Bar</option>
</select>
Entschuldigung, aber hier ist zu viel Codierung im Gange ...
Ich werde Ihnen das einfachste kostenlos geben. Ich habe es 2005 erfunden, obwohl die Javascript-Quelle jetzt sagt, dass es ihre Mitarbeiter waren, die es erfunden haben - mehr als ein Jahr später!
Wie auch immer, hier ist es, kein Javascript !!!
<!-- Paste this code into the BODY section of your HTML document -->
<select size="1" name="jumpit" onchange="document.location.href=this.value">
<option selected value="">Make a Selection</option>
<option value="http://www.javascriptsource.com/">The JavaScript Source</option>
<option value="http://www.javascript.com">JavaScript.com</option>
<option value="http://www.webdeveloper.com/forum/forumdisplay.php?f=3">JavaScript Forums</option>
<option value="http://www.scriptsearch.com/">Script Search</option>
<option value="http://www.webreference.com/programming/javascript/diaries/">The JavaScript Diaries</option>
</select>
Geben Sie einfach eine beliebige URL oder eine relative URL (zum Speicherort der Seiten auf dem Server) ein. Dies funktioniert immer.
document.location.href=this.value
ist?
Sie können dieses einfache Code-Snippet mit jQuery verwenden, um aus einem Dropdown-Menü umzuleiten.
<select id="dynamic-select">
<option value="" selected>Pick a Website</option>
<option value="http://www.google.com/">Google</option>
<option value="http://www.youtube.com/">YouTube</option>
<option value="http://www.stackoverflow.com/">Stack Overflow</option>
</select>
<script>
$('#dynamic-select').bind('change', function () { // bind change event to select
var url = $(this).val(); // get selected value
if (url != '') { // require a URL
window.location = url; // redirect
}
return false;
});
</script>
$(this).val()
mit this.value
und url != ''
mit ersetzen url !== ''
.
Hier ist, wie ich es machen würde
<select id="urlSelect" onchange="window.location = jQuery('#urlSelect option:selected').val();">
<option value="http://www.yadayadayada.com">Great Site</option>
<option value="http://www.stackoverflow.com">Better Site</option>
</select>
$('#userNav').change(function() {
window.location = $(':selected',this).attr('href')
});
<select id="userNav">
<option></option>
<option href="http://google.com">Goolge</option>
<option href="http://duckduckgo.com">Go Go duck</option>
</select>
Dies funktioniert für die href in einer ausgewählten Option
Ein anderer Weg:
<script type="text/javascript">
function change_url(val) {
window.location=val;
}
</script>
<select style="width:130px;" onchange="change_url(this.value);">
<option value="http://www.url1.com">Option 1</option>
<option value="http://www.url2.com">Option 2</option>
</select>
Ich glaube, der einfachste Weg, einen Ort innerhalb der Registerkarte "Auswählen" neu zu definieren, ist folgender:
<select onchange="location = this.value;">
<option value="https://www.google.com/">Home</option>
<option value="https://www.bing.com">Contact</option>
<option value="mypets.php">Sitemap</option>
</select>
Super einfacher Weg ist wie folgt. Sie müssen keine Funktion erstellen.
<select onchange="window.location = this.options[this.selectedIndex].value">
<option value="">Switch Language</option>
<option value="{{ url('/en') }}">English</option>
<option value="{{ url('/ps') }}">پښتو</option>
<option value="{{ url('/fa') }}">دری</option>
</select>
Wenn Sie nicht möchten, dass die URL den Wert der Option angibt, gebe ich Ihnen ein Beispiel:
<select class="abc">
<option value="0" href="hello">Hell</option>
<option value="1" href="dello">Dell</option>
<option value="2" href="cello">Cell</option>
</select>
$("select").bind('change',function(){
alert($(':selected',this).attr('href'));
})
<select name="xx" class="xxx" onchange="_name(this.options[this.selectedIndex].value,this.options[this.selectedIndex].getAttribute('rel'))">
<option value="x" rel="xy">aa</option>
<option value="xxx" rel="xyy">bb</option>
</select>
//for javascript
function _name(value,rel) {
alert(value+"-"+rel);
}
Versuchen Sie diesen Code, es funktioniert perfekt
<script>
$(function() {
$("#submit").hide();
$("#page-changer select").change(function() {
window.location = $("#page-changer select option:selected").val();
})
});
</script>
<?php
if (isset($_POST['nav'])) {
header("Location: $_POST[nav]");
}
?>
<form id="page-changer" action="" method="post">
<select name="nav">
<option value="">Go to page...</option>
<option value="http://css-tricks.com/">CSS-Tricks</option>
<option value="http://digwp.com/">Digging Into WordPress</option>
<option value="http://quotesondesign.com/">Quotes on Design</option>
</select>
<input type="submit" value="Go" id="submit" />
</form>
**redirect on change option with jquery**
<select id="selectnav1" class="selectnav">
<option value="#">Menu </option>
<option value=" https://www.google.com">
Google
</option>
<option value="http://stackoverflow.com/">
stackoverflow
</option>
</select>
<script type="text/javascript">
$(function () {
$('#selectnav1').change( function() {
location.href = $(this).val();
});
});
</script>
Probieren Sie diesen Code aus, der in Firefox, Chrome, IE funktioniert
<select onchange="this.options[this.selectedIndex].value && (window.location = this.options[this.selectedIndex].value);">
<option value="" selected>---Select---</option>
<option value="https://www.google.com">Google</option>
<option value="https://www.google.com">Google</option>
<option value="https://www.google.com">Google</option>
<option value="https://www.google.com">Google</option>