Проверка нескольких элементов управления в javascript

Я добавляю несколько элементов управления на страницу .aspx со страницы .vb в зависимости от определенных условий.

Мой код выглядит следующим образом:

    Dim sb As New StringBuilder

    sb.Append("<table border='0'cellpadding='0' cellspacing='0' width='50%' class ='tabledata' id='tblContent'>")
    For Each item As myObject In myLst            
        sb.Append("<tr><td style='width:50%;' valign='top'>")
        sb.Append("<textarea id=txt_comments" & i & " name='txt_comments' rows='5' cols='60'></textarea></td>")
        sb.Append("<td style='width:15%' valign='top' align='center'><select ID = validate" & i & " name=ValidateValues style ='border:1;width:150px'><option value = ''>Select</option><option value = 'Yes'>Yes</option><option value = 'No'>No</option><br /><br /></td>")
                    sb.Append("</tr><tr>")
    Next
    sb.Append("</table>")
    myContent.InnerHtml = sb.ToString

Итак, здесь я создаю <textarea> и <select> динамически и добавляю их в свой div (myContent)

 <div id = "structuredContent" runat = "server">
 </div>

У меня есть кнопка рядом, где мне нужно проверить несколько условий.

Мое правило проверки:

  • Пользователь должен выбрать да или нет из раскрывающегося списка (<select>).

  • Если пользователь выбирает «да», он должен ввести текст в
    . <textarea> (минимум 1 символ, максимум 1000 символов)

  • Если пользователь выбирает «Нет», <textarea> должен быть отключен.

Я пытаюсь подтвердить следующее:

function validateComments() {           
        var errorcheck = 0;
         $("[id^=txt_comments]").each(function () {
            var comment = $.trim($(this).val());
            $("[id^=validate]").each(function () {
                debugger;
                var value = $(this).val();

                if (comment == 0 && value == "Yes") {
                    debugger;
                    errorcheck = 1;
                }


            });


        });            if (errorcheck == 1) {
             //show error message
            }
        else {
            ErrorHide();
            return true;
        }

    }

Я могу проверить только один элемент управления (текстовое поле) из приведенного выше кода.

Текстовое поле и соответствующее раскрывающееся меню должны быть проверены вместе.

Как добавить проверку для раскрывающегося списка и можно ли комбинировать с ней в той же функции.

Любая помощь?

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

не используйте идентификатор (предпочтительным селектором будет #txt_comments), а используйте определяющее имя класса

Icepickle 09.05.2018 21:43

был ли полученный ответ не оправдал ваших ожиданий? Насколько это вам не помогло? Насколько я понимаю, это действенная попытка дать вам представление о том, как это сделать, на основе которой вы можете строить

Icepickle 11.05.2018 19:54
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
2
47
1

Ответы 1

Я не знаю, как вы ожидаете, что это, как if (comment == 0) {, будет работать.

Вы всегда будете получать строку в качестве значения, и проверка ее с помощью 0 всегда будет возвращать false. Скорее нужно проверить с помощью "".

А чтобы включить / отключить textarea, вам нужно будет привязать событие к тегу select и делать все, что вы хотите.

вот пример

$("#d").change(function(){
   if ($(this).val() === 'n'){
     $("#t").prop('disabled', 'disabled')
   }else{
    $("#t").prop('disabled', false)
   }

});
$('body').on('click', '#b', function() {
   var text = $.trim($("#t").val());
    if (text === "" && !$("#t").prop('disabled')){
     alert("yo! not valid") 
  }
});
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<select id = "d">
 <option value = "0">Select</option>
 <option value = "y">Yes</option>
 <option value = "n">No</option>
</select>
<textarea maxlength = "50" id = "t"></textarea>\

<button id = "b">Validate</button>

разве ты не видишь предупреждение?

Muhammad Usman 09.05.2018 21:52

Это не работает, если в раскрывающемся списке в качестве первого значения указано «Выбрать».

Santosh 09.05.2018 21:55

@Santosh, это дает вам представление о том, как поставить вещи в нужное русло. В любом случае, я обновлю это для вас :)

Muhammad Usman 09.05.2018 21:56

И я добавляю элементы управления динамически из файла .vb. Поэтому мне нужно проверять динамически

Santosh 09.05.2018 21:58
$('body').on('click', '#b', function() { - это способ проверки событий на динамически добавленных элементах. вы можете модифицировать для select с помощью этого
Muhammad Usman 09.05.2018 21:59

@GeorgeBailey Я проверил ваш обновленный ответ. Это не сработает, если я ввожу что-то в текст и нажимаю "Подтвердить" (без выбора значения раскрывающегося списка)

Santosh 09.05.2018 22:00

Ну и что ? если пользователь не выбрал ч / б «да» и «нет», вы можете принять это как «да», потому что он не выбрал «нет». Более того, вам не потребуется много времени, чтобы изменить то, что вы хотите

Muhammad Usman 09.05.2018 22:01

Нет, правило проверки: Пользователь должен выбрать кого-нибудь из раскрывающегося списка.

Santosh 09.05.2018 22:03

Другие вопросы по теме