[英]jQuery Function that fires when a select value has been changed?
大家好 因此,我正在嘗試使用這個簡單的jQuery程序,該程序僅在更改了選擇值時才觸發函數。 我計划在工作后在更復雜的程序中使用此簡單功能。
這是代碼(它來自jQuery API網站,我對其稍加修改以嘗試發生我想發生的事情):
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>change demo</title>
<style>
div {
color: red;
}
</style>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
</head>
<body>
<select id="selector" name="sweets">
<option>Chocolate</option>
<option selected="selected">Candy</option>
<option>Taffy</option>
<option selected="selected">Caramel</option>
<option>Fudge</option>
<option>Cookie</option>
</select>
<div></div>
<script>
$( "#selector" )
.on('change',(function () {
$( "select option:selected" ).each(function() {
<?php header("Location:jcue.php")?>
});
})
.change();
</script>
</body>
</html>
我想發生的是,僅在更改選擇輸入值后,頁面才應重定向到jque.php。 但是程序中發生的事情是它自動重定向到另一個頁面,甚至沒有加載當前頁面本身。 有什么問題? jQuery和Javascript對我來說是Web編程領域的未開發領域,我知道這對許多Web程序員來說都是非常基本的,但是我只需要它(當我真的需要時,我真的必須開始學習Javascript,AJAX和jQuery。空閑時間哈哈)。
我將要使用的復雜程序是搜索結果過濾程序。 但是在我能夠做到這一點之前,我必須使這個簡單的程序起作用。
有誰能夠幫助我? 謝謝。 答案將不勝感激。
嘗試以下方法:
$(function() {
$("#selector").change(function() {
location.href = "jcue.php";
});
});
這樣可以解決您的問題。
問題是因為您的PHP在頁面加載后就立即執行-您無法將其合並到javascript中。 另外,您不需要處理程序中的each()
。 嘗試以下方法:
$("#selector").on('change',(function () {
window.location.assign('jcue.php');
});
JavaScript是客戶端腳本,而PHP是服務器端腳本。 您正在嘗試觸發PHP標頭重定向,該重定向應在服務器發送到客戶端瀏覽器之前在服務器時發生。 因此,在更改事件中將無法正常工作。
只需使用:
$("#selector").change(function() {
window.location = "jcue.php"; //this can be URL as well
});
PS我注意到你有兩個“選擇”的選擇,介意告訴為什么?
不太好的做法:使用Java重定向,因為可以阻止JS
有一些語法錯誤,這是一個解決方法,只需替換您的代碼即可。
$( "#selector" ).on('change',(function () {
var str = "";
$( "select option:selected" ).each(function() {
window.location.replace("http://stackoverflow.com");
});
}));
良好實踐:使用jQuery Ajax請求的Jquery的Ajax或使用標准重定向PHP頭功能(其中有運行加載你的HTML / JS之前)
祝你好運,學習編程。 很有趣!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.