Проблема, с которой я столкнулся, заключается в том, что я не могу заставить 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, это просто добавить сообщение в форму, когда соблюдены определенные условия, и не дать форме быть опубликованной, пока пользователь устраняет проблему.