通过MVC中的Jquery从隐藏字段中获取多个值

时间:2015-08-20 05:46:05

标签: javascript jquery razor model-view-controller

我试图在foreach循环中使用隐藏的字段控件,以这种方式绑定隐藏字段值中的多个值

@foreach(var category in Model)
{
<input type="hidden" Id="hdnCategory" value="@category.Id"/>
}

现在使用Jquery我正在尝试检索值。但结果并不像预期的那样。它实际上是从foreach

中检索第一个值
 function btnClick() {
     var categoryID = $("#hdnCategory").val();      
}

此功能正在以这种方式点击按钮

<img class="imageclass"src="listofImages" onclick="imageClick()" />

有人可以建议我哪里出错了。

3 个答案:

答案 0 :(得分:1)

您可以尝试以下

另外我认为你的功能名称是不同的

@foreach(var category in Model)
{
    <input type="hidden" Id="hdnCategory" class="csscategory" value="@category.Id"/>
}

<img class="imageclass" src="listofImages" onclick="imageClick()" />

<script type="text/javascript">
    function imageClick() {

       $("input.csscategory").each(function() {
          var val = $(this).val();
    }
  }
</script>

答案 1 :(得分:0)

所有这些隐藏字段都具有相同的id,因此jQuery(以及带有querySelector的vanilla JavaScript)只返回第一个。

答案 2 :(得分:0)

当引用带有ID的标记时,只提取第一个标记因为ID应该是唯一的。

为了使您的代码能够将ID属性更改为class属性,然后遍历元素并获取值。

&#13;
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>

<img class="imageclass" src="listofImages" />
<input type="hidden" class="hdnCategory" value="@category.Id" />
<input type="hidden" class="hdnCategory" value="@category.Id2" />...

<script>
  $(document).ready(function() {
        $('.imageclass').click(function() {
              $(".hdnCategory").each(function() {
                  var val = $(this).val();
                  //do some thing with val
                  alert(val);
                });
              });
            });
</script>
&#13;
&#13;
&#13;