Vul hier de/het E-mail adres(sen) in Typ hier"> Vul hier de/het E-mail adres(sen) in Typ hier"> Vul hier de/het E-mail adres(sen) in Typ hier" />

форма все еще отправлена ​​после возврата false javascript

У меня небольшая проблема с проверкой в ​​javascript.

<form action="insert.php" id="form" name="form" method="post" 
    onSubmit="return validate()">
    
        Vul hier de/het E-mail adres(sen) in
        
Typ hier de E-mail
<input type="submit" name="Submit" value="Submit">
</form>

Как вы можете видеть здесь, у меня есть два текстовых поля. В верхнем, вы должны ввести один или несколько адресов электронной почты под eachother, а в нижней области textarea вы должны составлять сам адрес электронной почты. Затем, когда вы нажмете кнопку «Отправить», он отправит электронное письмо на все указанные адреса электронной почты.

Теперь я сделал проверку для обоих текстовых областей:

function explodeArray(emailID, delimiter) {
    tempArray = new Array(1);
    var Count = 0;
    var tempString = new String(emailID);

    while (tempString.indexOf(delimiter) > 0) {
        tempArray[Count] = tempString.substr(0, tempString.indexOf(delimiter));
        tempString = tempString.substr(
            tempString.indexOf(delimiter) + 1, 
            tempString.length - tempString.indexOf(delimiter) + 1
        );
        Count = Count + 1
    }

    tempArray[Count] = tempString.replace("\r", "");
    return tempArray;
}

function validate() {
    var emailID = document.form.email;
    var delimiter = "\n";
    var emailArray = explodeArray(emailID.value, delimiter);
    var textID = document.form.text;
    var length = emailArray.length,
        element = null;
    for (var i = 0; i < length; i++) {
        emailVar = emailArray[i];

        if (emailVar == null) {
            alert("Email-adres bestaat niet")
            emailID.focus()
            return false
        }
        if (emailVar == "") {
            alert("Email-adres veld is leeg")
            emailID.focus()
            return false
        }
        if (checkEmail(emailVar) == false) {
            emailVar.value = ""
            alert("Ongeldig E-mail adres");
            emailVar.focus()
            return false
        }
    }
    if ((textID.value == null) || (textID.value == "")) {
        alert("E-mail textveld is leeg")
        textID.focus()
        return false
    }
    document.getElementById("form").submit();
    return true
}

function checkEmail(hallo) {
    if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(hallo)) {
        return true
    }
    return false
}

(Я, вероятно, скопировал много ненужного кода, извините за это, просто скопировал все это на всякий случай ...)

Теперь, что делает :

- он не будет отправляться, когда оба текстовых поля пусты;

- он не будет отправлять, когда адреса электронной почты действительны , но нижняя текстовая область пуста;

Что не работает :

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

Я пытался выяснить, что может быть неправильно здесь, я googled и проверил stackoverflow, но я действительно ничего не мог найти. Может ли кто-нибудь сказать мне, что я здесь делаю неправильно?

Заранее спасибо.

2
nl ja de
Просто откройте страницу в Chrome и нажмите CTRL + SHIFT + j
добавлено автор ATOzTOA, источник
проверили ли вы свою консоль, чтобы убедиться, что это не ошибка сценария?
добавлено автор Samuel Liew, источник
IE: F12, FF/Chrome: CTRL + SHIFT + J
добавлено автор Samuel Liew, источник
Вы, конечно, могли бы заменить эту самодельную функцию explodeArray() с помощью простого вызова text.split ('\ n')
добавлено автор MCL, источник
... Я буду казаться глупым, но я думал, что проверка консоли идет, как, например, с реальной разработкой приложений, где вы используете такие вещи, как Java и C #. Как мне это сделать с Javascript? :Икс
добавлено автор Tienus McVinger, источник
Ах, хорошо. Ну, теперь это исправлено, но очень полезно для дальнейшего использования. Благодаря!
добавлено автор Tienus McVinger, источник

1 ответы

Вы использовали emailVar.focus (); , который не будет выполняться.

Here, fixed: Live Demo

if (checkEmail(emailVar) == false) {
    alert("Ongeldig E-mail adres");
    emailID.focus();
    return false;
}
0
добавлено
@TienusMcVinger это было легко, просто проверка того, какой кодовый блок не ведет, даст его вам.
добавлено автор ATOzTOA, источник
Большое спасибо! Он работает сейчас. Спасибо за это, я бы никогда не подумал об этом.
добавлено автор Tienus McVinger, источник
JavaScript Jobs — чат
JavaScript Jobs — чат
8 336 участник(ов)

JavaScript Jobs — чат для поиска работы и людей Правила оформления: https://teletype.in/@telegram-ru/r1WQe5F1m См. также: @mobile_jobs, @devops_jobs, @nodejs_jobs, @react_js, @angular_ru, @js_ru

JavaScript.ru
JavaScript.ru
7 932 участник(ов)

Сообщество сайта JavaScript.ru в Slack.

pro.js
pro.js
4 675 участник(ов)

Про JavaScript и NodeJS Invite: https://t.me/joinchat/Be4rsT5Rsgq30DHutjxXgA Правила: http://telegra.ph/ru-chat-rules-06-19 Вакансии только с ЗП, не чаще раза в неделю.

JavaScript — русскоговорящее сообщество
JavaScript — русскоговорящее сообщество
3 269 участник(ов)

Рекомендуем сразу отключить уведомления Правила: https://rudevs.network/ByaMH6un7 См. также: @js_noobs_ru, @nodejs_ru, @typescript_ru, @react_js, @electron_ru Вакансии и поиск работы: @javascript_jobs

JavaScript Noobs — сообщество новичков
JavaScript Noobs — сообщество новичков
2 484 участник(ов)

Чат для новичков

javascript_ru
javascript_ru
915 участник(ов)

Сообщество любителей самого популярного языка программирования в мире. Чат основан в 2009 году. Логи: https://goo.gl/9EOeM7 Поддержка бота: @chat_linker (ссылка на репу внутри) Вам будут интересны @frontend_ru и @css_ru

jsChat
jsChat
603 участник(ов)

Чат посвященный программированию на языке javaScript Перед отправкой ссылки на Ваш контент посоветуйтесь с админом Все ссылки удаляются ботом автоматически

JavaScript for Zombies Chat
JavaScript for Zombies Chat
492 участник(ов)

Чат про JavaScript для настоящих zombie! Вход строго по приглашениям! Ссылка для строгих приглашений: https://t.me/joinchat/AAMBHz3Uyr0tuZ7VaB029g

All That JS
All That JS
417 участник(ов)

JS на русском