我有这个JQuery / JS脚本,根据select元素中的哪个选项更改URL的$ _GET参数。它在Chrome中运行良好,但它不会更改$ _GET参数或在Safari 6.1.6中刷新。
$("#promjena").change(function () {
var v = $("#promjena").val();
var href = window.location.href;
if (v === "1") {
if (href.includes("?akcija=kontrola")) {
window.location.href = href.replace("?akcija=kontrola", "?akcija=default");
} else if (href.includes("?akcija=signal")) {
window.location.href = href.replace("?akcija=signal", "?akcija=default");
} else {
window.location.href = window.location.href + "?akcija=default";
}
}
if (v === "2") {
if (href.includes("?akcija=default")) {
window.location.href = href.replace("?akcija=default", "?akcija=kontrola");
} else if (href.includes("?akcija=signal")) {
window.location.href = href.replace("?akcija=signal", "?akcija=kontrola");
} else {
window.location.href = window.location.href + "?akcija=kontrola";
}
}
if (v === "3") {
if (href.includes("?akcija=default")) {
window.location.href = href.replace("?akcija=default", "?akcija=signal");
} else if (href.includes("?akcija=kontrola")) {
window.location.href = href.replace("?akcija=kontrola", "?akcija=signal");
} else {
window.location.href = window.location.href + "?akcija=signal";
}
}
});
答案 0 :(得分:1)
有一种可能性是val()
正在返回一个数字,并且您希望if(v === "1")
中有一个字符串,如果这是您可以执行的问题:
var v = $('#promjena').val() + ''; //to convert to string if not
另一个机会是support for includes in Safari < 9
如果是这种情况,您可以使用上面提到的includes
填充,或者重写您的代码,如:
if(href.indexOf("?akcija=default") !== -1)
或使用this answer
中的任何其他替代方法答案 1 :(得分:0)
尝试以下
var v = $("#promjena").attr("value");
OR
var v = parseInt($("#promjena").attr("value")).toString();
OR
var v = parseInt($("#promjena").val()).toString();