表單提交沒有被下面的代碼呼叫,有人可以幫助識別代碼中的問題。提前致謝。
<html>
<body>
<form id="form" name="form">
<select name='lstToggleDetails' id='lstToggleDetails' onchange="changeDetailMode1()">
<option value="default">Default</option>
<option value="details">Details</option>
</select>
<input type="submit" value="Register" style="display: none;" >
</form>
<!--Javascript-->
<script>
function changeDetailMode1()
{
var form = document.getElementById('form')
form.addEventListener('submit',function(event){
event.preventDefault()
console.log("in submit");
})
if (document.getElementById("lstToggleDetails").value == "details")
{
console.log("submitting form");
const form1 = document.getElementById("form");
form1.submit();
}
}
</script>
</body>
</html>
uj5u.com熱心網友回復:
當你打電話時.submit():
此方法與激活表單的提交類似,但并不完全相同。但是,當直接呼叫此方法時:
未引發提交事件。特別是,表單的 onsubmit 事件處理程式沒有運行。 不觸發約束驗證。
沒有submit事件,任何附加的東西form.addEventListener('submit'都不會運行。
改為使用.requestSubmit,可以取消。
您還應該無條件地添加提交處理程式,而不是每次<select>更改。
const form = document.getElementById('form')
form.addEventListener('submit', function(event) {
event.preventDefault()
console.log("in submit");
})
function changeDetailMode1() {
if (document.getElementById("lstToggleDetails").value === "details") {
console.log("submitting form");
form.requestSubmit();
}
}
<form id="form" name="form">
<select name='lstToggleDetails' id='lstToggleDetails' onchange="changeDetailMode1()">
<option value="default">Default</option>
<option value="details">Details</option>
</select>
<input type="submit" value="Register" style="display: none;">
</form>
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/519358.html
上一篇:分享幾個關于Camera的坑
下一篇:如何垂直增長塊以適應文本?
