是否可以通过调用来触发表单的onSubmit事件
function submitEdit(){
document.getElementById("edit").submit();
};
这是行不通的
表格:
echo "<form id='edit' onsubmit='validate(flag, typeFlag)' method='post' style='width: 100%;height:86%;'>";`
onSubmit事件:
window.flag=false;
var typeFlag;
function validate(flag, typeFlag) {
if ( (flag==true) && (typeFlag==true) ){
document.getElementById("edit").setAttribute('target', '_self');
document.getElementById("edit").action ="date.php";
} else if ( (flag==true) && (typeFlag==false) ){
document.getElementById("edit").setAttribute('target', '_blank');
document.getElementById("edit").action ="date_PDF.php";
} else
alert("Select an aircraft");
}
我做对了吗?我需要通过单击单选按钮来提交此表单。
echo '<td class="c3" style="color: #f79393">
<div class="radio">
<label><input type="radio" name="name_check" onclick="typeFlag=true; submitEdit();" class="c3" value="in" id="c3" '; if($flag) echo'checked'; echo '>in</label>
</div>
</td>';
谢谢!
答案 0 :(得分:0)
表单上的手动“提交”功能不会触发“提交”事件,因此您必须触发它。
train()
function submitEdit(){
var ele = document.getElementById('edit');
ele.submit();
var event = new Event('submit', {
'bubbles': true,
'cancelable': true
});
ele.dispatchEvent(event);
}
submitEdit();
function validate() {
console.log('form submitted');
}
答案 1 :(得分:0)
是否可以使用.submit()触发onSubmit?
否,不可能,validate()
函数永远不会被触发。来自MDN约submit()
:
直接调用此方法时,不会引发Submit事件(在 特别是,表单的onsubmit事件处理程序未运行),并且 约束验证也不会触发。
然后,由于您的action
中没有<form>
属性,因此在执行document.getElementById("edit").submit();
时没有任何反应。