2016-12-08 2 views
0

У меня возникла проблема с формой onsubmit в IE 11. Когда кнопка отправки была запущена, вызывается функция doSomething() ". Внутри функции doSomething() я вызываю другую функцию, которая выполняет некоторые операции проверки ввода. Эта функция всегда возвращает false, но устанавливает флаг в true, если все ошибки проверки исчезли. Если для флага установлено значение true, функция doSomething() "возвращает true, и форма будет отправлена, и действие вызывается. Этот шаблон работает в Firefox, Chrome и Safari, но не в IE11. В IE он вызывает действие перед «doSomeValidation()» - функция готова. : -/Может ли кто-нибудь помочь мне здесь? Большое спасибо!!!Форма отправить в IE11 не работает

<form action="headToNextPage.php" onsubmit="return doSomething()"> 

JS

flag = false, // a global flag inside the js-script 

function doSomeValidation(){ 
// validate the inputs and set "flag" to true if all errors are gone 
} 

function doSomething(){ 
    doSomeValidation(); // do the validation stuff 

    if(flag==true) { 
    // do some other stuff 
    return true 
    } 

    return false; 
} 
+0

Попробуйте 'console.log (window.flag, flag)', где вы его используете, и посмотрите, получаете ли вы то, что думаете. ALSO возвращает флаг вместо true или false: 'function doSomething() { doSomeValidation(); return flag;} ' – mplungjan

+0

Не можете ли вы использовать небольшую проверку привязки html5? Почти не требуется js ... Вы можете показать нам полную html-форму? – Endless

+1

Возможно, какой-то асинхронный вызов doSomeValidation – Mahi

ответ

0

Заменить запятую после ложно запятой и добавить предупреждение внутри метода DoSomething свои работы в IE11, конечно flag = false;

+0

извините, есть точка с запятой, как правило ... я ошибался в своем посте – Malvo85

+0

сделал попытку с предупреждением – vijay

+0

да, я сделал ... все предупреждения после вызова функции doSomeValidation() не будут вызваны – Malvo85

0

я решил. Проблема заключалась в том, что я вызывал функцию JS .startsWith (..) - в строке внутри функции jQuery $ (document) .ready (..) -. Chrome, Firefox и Safari проигнорировали его, но IE сходил с ума, но не обнаружил никаких ошибок. Вместо этого я использовал функцию .indexOf (..) - и это сработало. спасибо всем за то, что помогли мне здесь!

Смежные вопросы