1 回答

TA貢獻1836條經(jīng)驗 獲得超13個贊
用來event.preventDefault()解決問題。return true它本質上與在 HTML 元素屬性(如 )內執(zhí)行的操作相同onsubmit,它可以防止通常發(fā)生的默認行為。如果您希望發(fā)生在新選項卡中打開某些 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>
該代碼經(jīng)過測試并且可以工作。(由于代碼片段對新選項卡中打開 URL 的反應,它在代碼片段中不起作用,但這里有一個有效的JSFiddle。)
- 1 回答
- 0 關注
- 108 瀏覽
添加回答
舉報