Я добавляю несколько элементов управления на страницу .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;
}
}
Я могу проверить только один элемент управления (текстовое поле) из приведенного выше кода.
Текстовое поле и соответствующее раскрывающееся меню должны быть проверены вместе.
Как добавить проверку для раскрывающегося списка и можно ли комбинировать с ней в той же функции.
Любая помощь?
Заранее спасибо.
был ли полученный ответ не оправдал ваших ожиданий? Насколько это вам не помогло? Насколько я понимаю, это действенная попытка дать вам представление о том, как это сделать, на основе которой вы можете строить



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я не знаю, как вы ожидаете, что это, как 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>разве ты не видишь предупреждение?
Это не работает, если в раскрывающемся списке в качестве первого значения указано «Выбрать».
@Santosh, это дает вам представление о том, как поставить вещи в нужное русло. В любом случае, я обновлю это для вас :)
И я добавляю элементы управления динамически из файла .vb. Поэтому мне нужно проверять динамически
$('body').on('click', '#b', function() { - это способ проверки событий на динамически добавленных элементах. вы можете модифицировать для select с помощью этого
@GeorgeBailey Я проверил ваш обновленный ответ. Это не сработает, если я ввожу что-то в текст и нажимаю "Подтвердить" (без выбора значения раскрывающегося списка)
Ну и что ? если пользователь не выбрал ч / б «да» и «нет», вы можете принять это как «да», потому что он не выбрал «нет». Более того, вам не потребуется много времени, чтобы изменить то, что вы хотите
Нет, правило проверки: Пользователь должен выбрать кого-нибудь из раскрывающегося списка.
не используйте идентификатор (предпочтительным селектором будет #txt_comments), а используйте определяющее имя класса