Как использовать jquery для получения каждого значения из цикла cshtml foreach

Я строю систему оценки персонала, где пользователям задают 10 вопросов, чтобы оценить сотрудника. Как то так Как использовать jquery для получения каждого значения из цикла cshtml foreach

Каждой звезде присваивается значение от 1 до 5. В настоящее время я получаю каждое значение, но как мне присвоить каждое значение переменной, например: var questionOne = 2; var questionTwo = 3;

Это мой код на данный момент:

<h4>Score Ola using our rating form below.</h4>
<p>Job Title: Nanny</p>
<p style = "color: red; font-size: 12px;">
  Note: Questions are selected based on job title. We are constantly reviewing the list of job specific questions, please assist by recommending questions you would like to add to our job specific questionaire <a href = "#">here</a>
</p>
@foreach (var question in Model.AppraisalQuestions)
{
  <p>@question.QuestionDescription</p>
  <div class = "row lead evaluation">
    <div id = "colorstar" class = "starrr ratable"></div>
    <span id = "count">0</span> star(s) - <span id = "meaning"> </span>
  </div><br />
}

Пока что Javascript:

$(document).ready(function() {
  var correspondence = ["", "Poor", "Below Expectation", "Above Expectation", "Good", "Excelent" ];
  $('.ratable').on('starrr:change', function(e, value) {
    $(this).closest('.evaluation').children('#count').html(value);
    $(this).closest('.evaluation').children('#meaning').html(correspondence[value]);
    var currentval =  $(this).closest('.evaluation').children('#count').html();
    var target =  $(this).closest('.evaluation').children('.indicators');
    target.css("color","black");
    target.children('.rateval').val(currentval);
    target.children('#textwr').html(' ');
    alert(value);
  });

Я хочу сохранить каждую оценку в базе данных. Любая помощь будет принята с благодарностью. Спасибо

Это, скорее всего, разрешит дублирование идентификаторов, и этого следует избегать.

Carsten Løvbo Andersen 01.05.2018 10:46

Непонятно, что вы хотите решить - вы ничего не привязываете к своей модели. Вы хотите установить начальные значения или ваша проблема пытается обновить значения?

user3559349 01.05.2018 10:52

@stephen, спасибо, я хочу получить каждую оценку по каждому вопросу и сохранить ее в базе данных ...

user8107351 01.05.2018 10:53

Всегда ли в оценочных вопросах 5 пунктов?

gardarvalur 01.05.2018 10:57

Но у вас нет формы или каких-либо элементов управления формой для отправки. И какой плагин jquery вы используете для контроля рейтинга (если есть)?

user3559349 01.05.2018 10:57

@ gardarvalur да, оценка всегда 5, а вопросов всегда будет 10 ....

user8107351 01.05.2018 10:59

@StephenMuecke Я буду использовать сообщение jquery, чтобы опубликовать его, но я застрял в получении каждой оценки по каждому вопросу ....

user8107351 01.05.2018 11:00

Нет никакой разницы, если он опубликован с использованием ajax. Вы должны быть привязаны к своей модели - по крайней мере, ваша модель будет содержать свойство int Rating, к которому вы привязываетесь, а затем вы можете сериализовать свою форму, чтобы опубликовать ее.

user3559349 01.05.2018 11:03

Да, я понимаю, у меня есть модель, и проблема, с которой я столкнулся, заключается в том, как получить значение каждого рейтинга с помощью jquery, прежде чем передавать его в мою модель рейтинга.

user8107351 01.05.2018 11:07

Как насчет того, чтобы назначить его из модели как таковой, <div id = "colorstar" class = "starrr ratable" data-value = "@ question.derp"> </div> ---> где derp - ваше значение

gardarvalur 01.05.2018 11:10

Хорошо ... Спасибо, но я немного запутался ... Будет ли он получать значение для каждой оценки?

user8107351 01.05.2018 11:18

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

gardarvalur 01.05.2018 11:25

Я не понимаю твой вопрос, пожалуйста ...

user8107351 01.05.2018 11:50

Я попытаюсь ответить тебе

gardarvalur 01.05.2018 11:59
Поведение ключевого слова "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) для оценки ваших знаний,...
0
14
954
1

Ответы 1

Возможно, я полностью неверно понимаю ваш вопрос, но этот псевдокод у меня работает. Я добавил пять пустых звездочек к каждому вопросу и присвоил каждому вопросу значение и идентификатор вопроса. Вы также должны иметь возможность изменить значок звездочки с помощью jQuery, но я не включил это.

Просто дайте мне знать, если я что-то не понимаю.

Код разметки:

@foreach (var question in Model.AppraisalQuestions)
{
    <p>@question.QuestionDescription</p>
    <div class = "row lead evaluation">
        <i class = "glyphicon glyphicon-star-empty starrr ratable" data-value = "1" data-question = "@question.QuestionID"></i>
        <i class = "glyphicon glyphicon-star-empty starrr ratable" data-value = "2" data-question = "@question.QuestionID"></i>
        <i class = "glyphicon glyphicon-star-empty starrr ratable" data-value = "3" data-question = "@question.QuestionID"></i>
        <i class = "glyphicon glyphicon-star-empty starrr ratable" data-value = "4" data-question = "@question.QuestionID"></i>
        <i class = "glyphicon glyphicon-star-empty starrr ratable" data-value = "5" data-question = "@question.QuestionID"></i><br />
        <span class = "count">0</span> star(s) - <span class = "meaning"> </span>
    </div><br />
}

Javascript:

<script type = "text/javascript">
    $(document).ready(function () {
        var correspondence = ["", "Poor", "Below Expectation", "Above Expectation", "Good", "Excelent"];
        $(".ratable").click(function() {
            var value = $(this).data("value");
            var questionID = $(this).data("question");
            $(this).closest('.evaluation').children('.count').text(value);
            $(this).closest('.evaluation').children('.meaning').html(correspondence[value]);

            //TODO: send value and questionID to server, perhaps via ajax or something
        });
    });
</script>

Круто, @ user8107351 может ты дашь мне знать, работает ли? :)

gardarvalur 01.05.2018 22:42

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