2013-05-02 1 views
0

Привет, я хочу знать, как определить, произошло ли событие в течение 2,5 секунд.как прослушать для отправки события.

здесь внешняя функция, написанная каким-либо другим разработчиком.

function validateAndSubmit() { 
    if (validateRule(document.getElementById("inputElem").value) { 
     document.form.submit; 
    } else { 
     alert ("Value is wrong"); 
    } 
} 

<input type="button" onclick="validateAndSubmit();" id="updatePage"/> 

У меня есть слушатель jquery.

$("#updatePage").click(function() { 
     popupWaitingDialog(); 
     setTimeout(function() { 
      // insert code to see if submit was fire causing page to load or unload. 
      hideWaitingDialog(); 
     }, 2500); 
}); 

У меня есть диалоговое окно ожидания, которое появляется, если проверка не удалась, я хочу, чтобы ее можно было скрыть. Единственный способ, которым я знаю, если проверка не выполняется, - это событие отправки или перезагрузки.

+0

Дисплей ожидание диалога в 'validateAndSubmit()' перед вызовом 'document.form.submit()'. – Barmar

ответ

1

Добавить всплывающее окно с функцией подачи:

function validateAndSubmit() { 
    if (validateRule(document.getElementById("inputElem").value) { 
     popup WaitingDialog(); 
     document.form.submit(); 
    } else { 
     alert ("Value is wrong"); 
    } 
} 

Вы можете удалить click обработчик. В качестве альтернативы, вы можете сохранить click обработчика и добавить проверку кода проверки там:

$("#updatePage").click(function() { 
    popupWaitingDialog(); 
    validateAndSubmit(); // Doesn't return unless validation fails 
    hideWaitingDialog(); 
}); 
+0

спасибо, но validateAndSubmit - это внешняя функция в другом веб-приложении. Это означает, что я не имею права изменять его. Это встроенное приложение iframe. –

+0

Я добавил версию, которая вызывает validateAndSubmit, не меняя ее. – Barmar

+0

Спасибо, так как это был iframe, мне приходилось обращаться к функции через $ (# iframe) [0] .contentWindow.validateAndSubmit(); –