我试图在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()" />
有人可以建议我哪里出错了。
答案 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属性,然后遍历元素并获取值。
<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;