#javascript #c# #asp.net #model-view-controller
#javascript #c# #asp.net #модель-представление-контроллер
Вопрос:
Идея сделать элементы видимыми или невидимыми: Итак … как цикл работает прямо сейчас, так это для каждой категории, он перебирает каждый вопрос в каждой категории. Идея такова: на каждый вопрос можно ответить «да» или «нет», а затем на каждый вопрос с ответом «да» может быть добавлено до 5 дат. Что я хочу сделать:
-If yes, first date appears:
-If the first date is answered, then a second question appears, and so on.
Эти вопросы хранятся на сервере sql следующим образом:
Я хочу, чтобы только внутренний цикл имел эту возможность быть видимым или невидимым.. Моя мысль состоит в том, чтобы выполнить вложенный цикл и проверить проверку каждого элемента.
//Псевдокод
//For each first question which has 5 sub questions that are all set to hidden:
var questioncount = (count of the first questions)
for(int i = 0; i<questioncount; i ){
// set first variable to hold the first questions object.
var element(‘#questionElement’ i);
// set firstElement to selected answer
var isAnsweredYes = firstElement.(‘Yes’);
for int j = 0; i<subQuestionCount; j )
if (isAnsweredYes == True){
// jQuery selector to get an element
var query = $('#element' j);
// check if element is Visible
var isVisible = query.is(':visible');
if (isVisible === true) {
// element is Visible
// do nothing
} else {
// element is Hidden
query.show();
}
else
{
//do nothing
}
}
}
Кажется ли моя логика передовой? или кто-нибудь может посоветовать мне лучший способ?
Ответ №1:
Я бы использовал кнопку с надписью «Добавить еще одну дату», которая отображается под полем последней даты, как только появляется хотя бы одна. Таким образом, вам не придется выбирать определенное число (например, 5) в качестве максимального, плюс я думаю, что это довольно интуитивный способ расширения формы. При каждом нажатии кнопки создавайте новые элементы управления вводом; будь то на javascript или на стороне сервера, это не имеет реального значения.
Комментарии:
1. Это хороший ответ… Я попробую это. итак, тогда, я думаю, я бы использовал событие on change для вопроса «да» или «нет»? Как бы я выполнил событие check change внутри подобного цикла, чтобы вызвать первое отображение?
2. Да, найдите onChange в раскрывающемся списке «Да / нет». Если для параметра установлено значение «нет», скройте весь раздел, содержащий ввод даты. Если для параметра установлено значение yes, удалите все существующие входные данные о дате (если ранее было переключено значение yes / no), установите «dateCount = 1» и создайте циклические входные данные о дате от 0 до «dateCount». Я не уверен в вашем внешнем цикле и в чем его назначение. Вы, вероятно, не хотите добавлять прослушиватели событий в цикл в любом случае, это должно быть добавлено до или после, чтобы это произошло только один раз, иначе вы получите нечетные результаты.