Jquery .replaceWith () не обновляется корректно с обновленным текстом - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть форма, которую я проверяю перед отправкой. Как следует из названия, ValidateForm() проверяет форму, а ValidateRange(num) проверяет набор полей в форме в зависимости от выбора пользователя. Возьми у меня, что санкционирование проводится правильно.

В самом последнем операторе if, где я проверяю результат, если я использую jQuery .append(), он работает нормально, но я хочу заменить проверочный текст методом replaceWith(), но этого не происходит.

result.message - это просто текстовая строка, указывающая, какое поле имеет проблему с проверкой, и указывает на нее пользователя.

В console.log() я вижу, что сообщения указателя проверки корректно появляются, когда я исправляю поля с правильными значениями, но по какой-то причине он продолжает заменять <div id ='ValidationDiv'></div> первым сообщением указателя снова и снова.

function ValidateForm() {
    var result = {valid:true, message:"In-Progress"};

    if ($('#firstRangeRadioButton').is(':checked'))
        result = ValidateRange(1);
    else if ($('#secondRangeRadioButton').is(':checked'))
    {
        result = ValidateRange(1);
        if(result.valid == true)
            result = ValidateRange(2);
    } 
    else if ($('#thirdRangeRadioButton').is(':checked')) {
        result = ValidateRange(1);
        if (result.valid == true)
            result = ValidateRange(2);
        if (result.valid == true)
            result = ValidateRange(3);
    }

    if (result.valid == false)
    {
        console.log(result.message);
        message = "<div class=\"well well-sm\"><div><div class=\"blink\"><strong>Validation Failed: </strong>" + result.message + "</div></div></div>";
        $('#ValidationDiv').replaceWith(message);
        blink('.blink');
        console.log(message);

        return false;
    }
    else
        return true;
}
...