簡體   English   中英

從提交 function 觸發 onSubmit

[英]Trigger onSubmit from submit function

是否可以通過調用它來觸發表單的 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>';

謝謝你!

表單上的手動“提交”功能不會觸發“提交”事件,因此您必須觸發它。

 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'); } 
 <form id='edit' onsubmit='validate()' method='post' style='width: 100%;height:86%;'> <input type='text' value='name'/> </form> 

是否可以使用.submit()觸發onSubmit?

不,不可能, validate()函數永遠不會被觸發。 MDN submit()

直接調用此方法時,不會引發Submit事件(特別是不會運行表單的onsubmit事件處理程序),並且也不會觸發約束驗證。

然后,由於您的<form>沒有action屬性,因此在執行document.getElementById("edit").submit(); 什么都沒發生。

2022 更新

這篇文章很舊,但我不妨留下一個新的工作解決方案。 看來requestSubmit()正是 OP 需要的。 MDN 文檔

更新后的 function:

function submitEdit(){
    document.getElementById("edit").requestSubmit();
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM