Javascript для меня загадка.Утверждение не выполнено для анонимной функции Javascript
Почему у меня возникли ошибки «Утверждение не удалось анонимной функции» с функцией ниже?
Кажется довольно простым; он проверяет наличие домена в текстовом поле в контактной форме Marketo и разрешает/запрещает проверку формы.
функция должна работать со сценарием третьей стороной (внешний библиотеки Marketo) и функции на странице
MktoForms2.loadForm("http://app-sjn.marketo.com", "023-GTK-123", 4567);
, который показывает контактную форму (которая является причиной, по которой JSFiddle выиграл» t), поэтому это может быть трудно исправить с помощью кода, который я могу показать здесь.
Главный сценарий находится на http://app-sjn.marketo.com/js/forms2/js/forms2.js Я, очевидно, ничего не могу изменить. Но есть ли что-то очевидное в функции ниже? Или как он взаимодействует с основным сценарием? Есть вопрос (function()
?
(function(){
var invalidDomains = ["@gmail.","@yahoo.","@hotmail.","@live.","@aol.","@outlook."];
MktoForms2.whenReady(function (form){
form.onValidate(function(){
var email = form.vals().Email;
if(email){
if(!isEmailGood(email)) {
form.submittable(false);
var emailElem = form.getFormElem().find("#Email");
form.showErrorMessage("Must be Business email.", emailElem);
}else{
form.submittable(true);
}
}
});
});
function isEmailGood(email) {
for(var i=0; i < invalidDomains.length; i++) {
var domain = invalidDomains[i];
if (email.indexOf(domain) != -1) {
return false;
}
}
return true;
}
})();
И это HTML, что цели сценария на документ готов:
<input style="width: 150px;"
class="mktoField mktoEmailField mktoHasWidth mktoRequired mktoValid" maxlength="255"
name="Email" id="Email" type="email">
Update 10/31/16
"Утверждение не удалось" ошибка появляется, чтобы быть уткой , по словам Берги, и теперь я думаю, что проблема должна быть связана с вышеприведенной функцией и как она работает с основным сценарием.
Пожалуйста, покажите нам стек из исключения, он, кажется, не исходит из вашего кода. – Bergi
Это имеет смысл; Я переключил трассировку следа в Firebug, и ничего не показывает. Мне нужно добавить console.trace() в сценарий выше? – markratledge
Нет, 'console.trace' не приведет вас нигде. Вам нужно найти место, где сделано утверждение. – Bergi