$("#form").submit(); is not working as expected

Ratha

I have two buttons(save, publish) defined in my form. If i Click 'save' and then 'publish' , publish button is not working. The issue here is, save function works fine as expected. But when clicking 'publish', what happens is it tries to submit the form and rather to validate the form which defines under 'publish' function, it goes to 'save' function's validate function and further process.I would like to know why it skips that and jump to 'save' function's validate process?

The sample code;

Form:

<form class="form-horizontal" method="POST" id="manage_form">
    <div class="form-actions" id="saveButtons"> 
        <button class="btn btn-primary" id="save"/>save</button>
        <% if (outputs.isPermitted) { %> 
            <a class="btn btn-info" id="publish">Publish</a>  
        <% } %>
    </div>
</form>

Jquery

// cache var to eliminate unnecessary re-querying

var $manageForm = $('#manage_form');

$('#save').click(function (e) {
   var v = $("#manage_form").validate({
            submitHandler: function(form) {
            if(!validate_tiers()){
                return false;

            }
            var designer = APIDesigner();
            $('#swagger').val(JSON.stringify(designer.api_doc));
            $('#saveMessage').show();
            $('#saveButtons').hide();
            $(form).ajaxSubmit({
                success:function(responseText, statusText, xhr, $form) {
            //............
        });
    $("#manage_form").submit();
    });



    $('#publish').click(function(e){

    alert('xxx');
    e.preventDefault();
        var v = $("#manage_form").validate({

            submitHandler: function(form) {
             if(!validate_tiers()){
                return false;
            }
            var designer = APIDesigner();
            $('#swagger').val(JSON.stringify(designer.api_doc));
            $('#saveMessage').show();
            $('#saveButtons').hide();        
            $(form).ajaxSubmit({
                success:function(responseText, statusText, xhr, $form) {
                    $('#saveMessage').hide();
                    $('#saveButtons').show();                
                    if (!responseText.error) {  

                        $( "body" ).trigger( "api_saved" );       
                    } else {
                         if (responseText.message == "timeout") {
                             if (ssoEnabled) {
                                 var currentLoc = window.location.pathname;
                                 if (currentLoc.indexOf(".jag") >= 0) {
                                     location.href = "index.jag";
                                 } else {
                                     location.href = 'site/pages/index.jag';
                                 }
                             } else {
                                 jagg.showLogin();
                             }
                         } else {
                             jagg.message({content:responseText.message,type:"error"});
                         }
                    }
                }, dataType: 'json'
            });
            }
        });
        alert('zzz');
      $manageForm.submit();
    });
Manwal

Prevent default submitting of form simply use:

e.preventDefault();

Use different submit handler for each button, This is what you want:

$('#myform').validate({
    });
$('#submit').click(function(e) {
    e.preventDefault();
    $("#myform").data("validator").settings.submitHandler = function (form) { 
                                                                            alert('submit with submit'); 
                                                                             //your code
                                                                            return false; 
                                                                        };
    $('#myform').submit();
    return false;
});
$('#publish').click(function(e) {
    e.preventDefault();
    $("#myform").data("validator").settings.submitHandler = function (form) { 
                                                                            alert('submit with publish'); 
                                                                            //your code
                                                                            return false; 
                                                                        };
    $('#myform').submit();
    return false;
});

DEMO

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

reCAPTCHA on second form submit not working

分類Dev

Netsuite Online Form - Submit button not working

分類Dev

Ionic - form not working to submit a array to be saved to database

分類Dev

Wy is my form submit event listener is not working

分類Dev

Form Submit Button Not Working in all browsers

分類Dev

How to get onclick working with form submit button?

分類Dev

isset function not working with form submit and database insert statment

分類Dev

Form submit not working after second attempt in jQuery AJAX

分類Dev

Spring Security CSRF Token not working with AJAX call & form submit in same JSP

分類Dev

How to submit a form in scrapy?

分類Dev

Elm: clear form on submit

分類Dev

Catching form submit result

分類Dev

submit form with a virtual property

分類Dev

Submit Form on image click

分類Dev

AJAX form validation on submit

分類Dev

PHP Form submit on condition

分類Dev

Contact form error on submit

分類Dev

Submit button not submitting on a form

分類Dev

jquery submit handler not working

分類Dev

AJAX call is not working as expected

分類Dev

jQuery .when().then() not working as expected

分類Dev

.vimrc file not working as expected

分類Dev

*ngIf not working as expected with observable

分類Dev

ItemIsAutoTristate flag not working as expected

分類Dev

KeyboardAvoidingView not working as expected on IOS

分類Dev

PowerShell variables not working as expected

分類Dev

XPath logical 'and' not working as expected?

分類Dev

CancellationTokenSource not working as expected on a TaskCompletionSource

分類Dev

string formatting not working as expected