jQuery submit () игнорирует обработчик событий во вложенном состоянии - PullRequest
0 голосов
/ 14 апреля 2020

Проблема, с которой я столкнулся, заключается в том, что я не могу заставить event.preventDefault () помешать отправке формы во вложенных операторах if ниже первого условия, проверяющего родительский билет против оригинального билета (который работает должным образом). Похоже, теряется возможность вызывать обработчик событий. Я попытался вернуть false, event.stopPropagation (), event.stopImmediatePropagation (), и ничего не работает внутри вложенных условий. Может ли кто-нибудь пролить свет на это для меня?

$( "#editTicket" ).submit(function( event ) {
    var inputTicket = $('input[name=parentTicketID]').val();
    var orginalTicketID = $('input[name=id]').val();

    //  Parent Ticket cannot be the original ticket
    if ( inputTicket == orginalTicketID )
    {
        $("#parentTicketMessage").html("The parent ticket number is the same the original ticket.  Please change the parent ticket number.");
        $('input[name=parentTicketID]').focus();
        event.preventDefault();  
    }

    if ( inputTicket != orginalTicketID && inputTicket.length > 0)
    {   
        $.get("/resources/cfc/qmdata/ticket.cfc?method=getTicketArray&returnformat=json",{id:inputTicket}).done(function(data) 
        {
            var thisTicketID = JSON.parse(data);

            if ( thisTicketID.toString().length == 0 )
            {
                alert("inside bad ticket");
                $("#parentTicketMessage").html("This is not a valid ticket number.  Please change the parent ticket number.");
                $('input[name=parentTicketID]').focus();
                event.preventDefault();  
            }

            else if (thisTicketID[0].ticketID.toString().length > 0 && thisTicketID[0].parentTicketID.toString().length > 0)
            {
                $.get("/resources/cfc/qmdata/ticket.cfc?method=getTicketArray&returnformat=json",{parentTicketID:inputTicket}).done(function(data2) 
                {
                    var thisParentTicketID = JSON.parse(data2);
                    //  We need to check to see if the parentTicketID has not been used on this page.
                    if (thisParentTicketID.toString().length != 0 && thisParentTicketID[0].ticketID != inputTicket)
                    {
                        alert("already used");
                        //  This is the child ticket check and is already being used...stop processing and display message
                        $("#parentTicketMessage").html("This ticket number is already a child ticket and cannot be used.");                     $('input[name=parentTicketID]').focus();
                        event.preventDefault();  
                    }
                });
            };
        });
    }   
});

'' '

То, что я пытаюсь выполнить sh, это просто добавить сообщение в форму, когда соблюдены определенные условия, и не дать форме быть опубликованной, пока пользователь устраняет проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...