簡體   English   中英

更改表單的提交 function

[英]Change form's onsubmit function

我想在任何其他 onsubmit 操作之前執行驗證。 不幸的是,我無法控制表單上 onsubmit 屬性的值。 例如:

<form id="myForm" onsubmit="return stuffICantChange()"></form>

我嘗試了以下代碼和其他幾種方法,但沒有成功:

$("#myForm").onsubmit = function() {
    console.log("hi");
}

感謝您的幫助,謝謝。

如果這是重復的,請在將其標記為重復之前告知我,以便我可以在必要時反駁該聲明。

編輯:

我的代碼按要求:

<form id="form_ContactUs1" name="form" method="post" action="index.php" onsubmit="return  Validator1(this) &amp;&amp; ajaxFormSubmit(this); return false">
<div class="form">

    <div class="form-staticText">
        <p>We look forward to hearing from you! Please fill out the form below and we will get back with you as soon as possible.</p>
    </div>


    <div class="form-group">
        <input class="form-control" placeholder="Name" id="IDFormField1_Name_0" name="formField_Name" value="" size="25" required="" type="text">
        <span class="form-control-feedback"></span>
    </div>


    <div class="form-group">
        <input class="form-control" placeholder="Email" id="IDFormField1_Email_0" name="formField_Email" value="" size="25" required="" type="email">
        <span class="form-control-feedback"></span>
    </div>


    <div class="form-group">
        <input class="form-control bfh-phone" data-format="ddd ddd-dddd" placeholder="Phone" id="IDFormField1_Phone_0" name="formField_Phone" value="" size="25" type="tel">
        <span class="form-control-feedback"></span>
    </div>


    <div class="form-group">
        <textarea class="form-control" placeholder="Comments" name="formField_Comments" id="IDFormField1_Comments_0" cols="60" rows="5" required=""></textarea>
        <span class="form-control-feedback"></span>
    </div>



    <div class="row submit-section">

        <input name="submit" class="btn btn-success submit-button" value="Submit" type="submit">
    </div>
</div>

$( "form" ).each(function() {

    console.log( $(this)[0] );
    sCurrentOnSubmit = $(this)[0].onsubmit;
    $(this)[0].onsubmit = null;
    console.log( $(this)[0] );

    $( this )[0].onsubmit( function() {
        console.log( 'test' );

    });

});

除了已經執行的功能之外,您還應該能夠毫不#myForm地向#myForm添加另一個onsubmit函數:

function myFunction() {
    ...
}

var myForm = document.getElementById('myForm');
myForm.addEventListener('submit',myFunction,false);

嘗試

$("#myForm").submit(function(){
   .. Your stuff..
   console.log("submit");
   return false;
});

這將在每次提交表單時觸發,然后end return false阻止繼續執行表單默認操作。

試試這個,它是純Javascript:

function overrideFunction(){
  console.log('Overrided!');
}
var form;
form = document.querySelector('#myForm');
form.setAttribute('onsubmit','overrideFunction()');

問候。

您應該在表單的每個字段上觸發一個更改事件,以檢查驗證。

$('input').on('change', function(e) {
   if($(this).val() == '') {
        console.log('empty');
   } 
});

這將幫助用戶更快地等待然后提交。

您也可以在提交之前嘗試點擊事件。

$('#formsubmitbutton').on('click', function(e) {
   //your before submit logic

   $('#form').trigger('customSubmit'); 
});

$('#form').on('customSubmit', function(e) {
  //your normal submit
});

試試這個代碼:

$("#myForm").on('submit',function() {
    console.log("hi");
});

偶然發現這篇文章並將其他 javascript 種方法放在一起修改 html,我想我會把它添加到這堆中,因為我認為這是一個更簡單、更直接的解決方案。

 document.getElementById("yourFormID").setAttribute("onsubmit", "yourFunction('text','" + Variable + "');");
 <form id="yourFormID" onsubmit="">.... </form>

暫無
暫無

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

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