如果缺少ID,请使用jquery填充另一个隐藏字段中的行

时间:2012-03-29 10:34:23

标签: javascript jquery asp.net-mvc

我有一个名为Table的{​​{1}},此CustomPickedTable包含具有Table等属性的行,而某些行根本没有任何属性。只是<td Data-question-id="5">Example</td>

我希望能够将em分类到不同的隐藏字段中,这些是我的隐藏字段:

<td>example</td>.

我现在拥有的代码是,所有具有属性@Html.HiddenFor(model => model.SelectedCustomQuestions, new { @id = "SelectedQuestionsWithAttr" }) @Html.HiddenFor(model => model.SelectedQuestions, new { @id = "SelectedQuestionsWithNoAttr" }) 的行都会填充到"data-question-id",这是我对具有属性的行的隐藏字段。

但是我希望我的Jquery代码也填充那些行,没有属性被填充到我的SelectedQuestionsWithAttr hiddenfield。

这是Just fill SelectedQuestionsWithAttr hiddenfield:

的代码
SelectedQuestiosnWithNoAttr

是否有任何解决方案可以添加到我的jquery代码中?

先谢谢

1 个答案:

答案 0 :(得分:0)

您需要在<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();