1 回答
TA贡献1836条经验 获得超13个赞
用来event.preventDefault()解决问题。return true它本质上与在 HTML 元素属性(如 )内执行的操作相同onsubmit,它可以防止通常发生的默认行为。如果您希望发生在新选项卡中打开某些 URL 的自定义行为,则必须首先覆盖默认行为。
另外,请确保您的表单变量在某处定义,不确定它是否在您的代码中,因为它不在您的第二个示例中。
document.getElementById('cbx').addEventListener(
'submit', function checkForm(event) {
//Prevents default action that would normally happen onsubmit
event.preventDefault();
//Define the form element
var form = document.getElementById("cbx");
if (form.cb1.checked) {
window.open('http://google.com/', '_blank');
}
if (form.cb2.checked) {
window.open('http://yahoo.com/', '_blank');
}
return true;
});
<form id="cbx">
<label for="cb1">G</label>
<input name="cb1" type="checkbox">
<label for="cb2">Y</label>
<input name="cb2" type="checkbox">
<input type="submit" value="Submit">
</form>
该代码经过测试并且可以工作。(由于代码片段对新选项卡中打开 URL 的反应,它在代码片段中不起作用,但这里有一个有效的JSFiddle。)
- 1 回答
- 0 关注
- 76 浏览
添加回答
举报