[英]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.