簡體   English   中英

event.preventDefault() 在驗證中不起作用

[英]event.preventDefault() not working in validation

我有一個頁面,用戶可以在帖子下發表評論。 使用 ajax 加載帖子和評論。 我正在嘗試使用以下代碼驗證評論表單。

document.querySelector('body').addEventListener('submit', event => {
                if (event.target.matches('.needs-validation')) {
                    if (event.target.checkValidity() === false) {
                            event.preventDefault();
                            event.stopPropagation();
                        }
                        event.target.classList.add('was-validated');
                }
            }, false);

使用 ajax 提交評論表。

$('body').on('submit', '.cmnt-frm', function(e) {

現在表單正在驗證並顯示錯誤消息,但表單正在使用 ajax 提交。 event.preventDefault()不起作用。 下面的代碼有效,但僅適用於初始頁面加載。 在提交新帖子時,帖子列表會使用 ajax 進行更新,在這種情況下這不起作用

window.addEventListener('load', function() {
                // Fetch all the forms we want to apply custom Bootstrap validation styles to
                var forms = document.getElementsByClassName('needs-validation');
                // Loop over them and prevent submission
                var validation = Array.prototype.filter.call(forms, function(form) {
                    form.addEventListener('submit', function(event) {
                        if (form.checkValidity() === false) {
                            event.preventDefault();
                            event.stopPropagation();
                        }
                        form.classList.add('was-validated');
                    }, false);
                });

            }, false);

代碼有什么問題。 請幫忙。

event.target.className.matches('需要驗證').....

暫無
暫無

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

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