если идентификатор отсутствует, заполните строки в другом скрытом поле с помощью jquery - PullRequest
1 голос
/ 29 марта 2012

У меня есть один Table с именем CustomPickedTable, у этого Table есть строки с таким атрибутом, как <td Data-question-id="5">Example</td>, а некоторые строки вообще не имеют какого-либо атрибута.просто <td>example</td>.

Я хочу иметь возможность сортировать их по разным скрытым полям, это мои скрытые поля:

@Html.HiddenFor(model => model.SelectedCustomQuestions, new { @id = "SelectedQuestionsWithAttr" }) 
@Html.HiddenFor(model => model.SelectedQuestions, new { @id = "SelectedQuestionsWithNoAttr" })

код, который я сейчас имею, состоит в том, что все строки с атрибутом"data-question-id" заполняется до SelectedQuestionsWithAttr, который является моим скрытым полем для строк с атрибутами.

Но я хочу, чтобы мой код Jquery также заполнял эти строки без атрибутов, заполнялся в мое SelectedQuestiosnWithNoAttr скрытое поле.

Это код для простого заполнения скрытого поля SelectedQuestionsWithAttr:

                var selectedQuestionsWithAttr = $("#SelectedQuestionsWithAttr");
                var currentIds = new Array();

                $("#CustomPickedTable").find("td").each(function () {
                    var clickedId = $(this).attr("data-question-id");
                    currentIds.push(clickedId);
                });

                selectedQuestionsWithAttr.val(currentIds.join(","));

                $("form").submit();
            }

Есть ли какие-либо решения, которые я могу добавить в свой код jquery для этого?

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

1 Ответ

0 голосов
/ 29 марта 2012

Вам понадобится добавить что-то к тегам <td>, чтобы иметь возможность их идентифицировать:

<td id="noAttr@(Model.SelectedQuestions.IndexOf(variable))">

Тогда jQuery будет:

var $qWithAttr = $("#SelectedQuestionsWithAttr");
var $qWithoutAttr = $("#SelectedQuestionsWithNoAttr");
var currentIds = new Array();
var missingIds = new Array();
$("#CustomPickedTable td[data-question-id]").each(function () {
    currentIds.push($(this).attr("data-question-id"));
 });
$("#CustomPickedTable td:not([data-question-id])").each(function () {
    missingIds.push($(this).attr("id"));
 });
 $qWithAttr.val(currentIds.join(","));
 $qWithoutAttr.val(missingIds.join(","));

 $("form").submit();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...