我有以下HTML代码:
<html>
<head>
<script type="text/javascript" src="buttonClicked.js"></script>
</head>
<body>
<form id="confirmChangeId" name="selectionForm" method="POST">
<input id="btnChange" type="submit" value="Change">
</form>
</body>
</html>
使用以下javascript:
window.onload = function() {
initFunc();
}
var initFunc = function() {
var change = document.getElementById("btnChange");
change.onclick=function() {
window.location.href='http://stackoverflow.com';
//alert("change button clicked"); // If this line is uncommented, then the page re-direction does occur
}
}
使用Firefox,当在JS文件中取消注释警报时,确实会发生重定向。为了在工作中投入更多扳手,使用Chrome或Opera时无论如何都不会发生重定向。我显然在这里遗漏了一些小东西,但却找不到它是什么。建议?
答案 0 :(得分:2)
如果您希望重定向可靠地工作,则必须在onlick函数的末尾添加return false;
。
注意:您应该将事件侦听器附加到对象,而不是使用过时的onclick
属性。
var change = document.getElementById("btnChange");
change.addEventListener('click', function(event) {
event.preventDefault(); // stops the click from completing
window.location.href='http://stackoverflow.com';
}, false);
答案 1 :(得分:1)
在您的函数中添加return false;
。在重定向之前提交的其他表单
var initFunc = function() {
var change = document.getElementById("btnChange");
change.onclick=function() {
window.location.href='http://stackoverflow.com';
return false;
//alert("change button clicked"); // If this line is uncommented, then the page re- direction does occur
}
}
答案 2 :(得分:1)
以下代码应该有效。您必须在onlcik函数中添加return false。你需要事件监听器。
见下文:
<script>
window.onload = function() {
initFunc();
}
var initFunc = function() {
var change = document.getElementById("btnChange");
change.addEventListener('click', function(event) {
event.preventDefault(); // stops the click from completing
window.location.href='http://stackoverflow.com';
}, false);
}
</script>
<html>
<head>
</head>
<body>
<form id="confirmChangeId" name="selectionForm" method="POST">
<input id="btnChange" type="submit" value="Change">
</form>
</body>
</html>