使用jQuery选中一个复选框
我使用ASP.NET、jQuery、JSON和jTemplates开发了一个产品目录前端 基本上,前端使用jQuery和JSON从数据库检索一组分页的产品,并使用jTemplate“productItemTemplate”在前端一次显示一个页面上的产品,见下文 以下是我的代码片段:使用jQuery选中一个复选框,jquery,checkbox,Jquery,Checkbox,我使用ASP.NET、jQuery、JSON和jTemplates开发了一个产品目录前端 基本上,前端使用jQuery和JSON从数据库检索一组分页的产品,并使用jTemplate“productItemTemplate”在前端一次显示一个页面上的产品,见下文 以下是我的代码片段: <script type="text/javascript"> var selectedProductIDs='1,2' function displayProductCheckboxes()
<script type="text/javascript">
var selectedProductIDs='1,2'
function displayProductCheckboxes() {
var productIDs = selectedProductIDs.split(", ");
var checkboxes = $('input:checkbox[name="chkProduct"]');
for (var j = 0; j < productIDs.length; j++) {
checkboxes
.filter('[id="' + productIDs[j] + '"]')
.attr('checked', 'checked');
};
}
每个产品都有一个复选框“chkProduct”-见上文。我希望用户能够通过单击关联的复选框来选择产品,并跨页面维护用户的选择
为了实现这一点,我维护了一个选定产品ID列表“SelectedProductID”-见上文
每次我加载一页产品时,我都会调用函数“DisplayProductCheckBox”,该函数用于检查以前选中的复选框
不幸的是。它不会选中以前选中的复选框
请任何人帮我解决这个问题,或者建议一个替代的工作解决方案
谢谢
问候
Walter我在IE中遇到了这个问题。我设置了defaultChecked属性
checkBox.defaultChecked=true 您的示例函数在FF 10.0.2和jQuery 1.7.1中正常工作。可能您没有调用函数DisplayProductCheckBox;在$document.ready上
我构建了一个小的JSFIDLE:。jQuery在1.6版中引入了prop方法,因为attr在各种情况下长期存在问题。对于checked等属性,请使用prop而不是attr。选中的是元素属性而不是属性
附带的,不是问题的一部分,但是在您的示例中,复选框后面有一个rogue标记-其中包含div的也要处理。这个selectProduct实际上在做什么?。。有Ajax调用吗?Abhijeet:JavaScript:selectProduct是一个我维护“selectedProductId”列表的函数,没有Ajax调用。我创建了这个JSFIDLE:-这是否证明了jQuery代码的核心是好的,并且可能是HTML错误造成的?不完全确定。不管是哪种方式,希望能有所帮助。。。。如果SelectedProductId设置正确,则复选框将被选中EdSpaceBison:感谢您发现了rogue标记。感谢Seybsen正在调用该函数。抱歉,danpickett我不明白如何在上面提供的代码段中使用此解决方案。
<script type="text/html" id="productItemTemplate">
<ul class="items-list">
{#foreach $T.items as record}
<li class="item-detail">
<a class="item-productimage-link" href="<%=Page.ResolveUrl("~/Product/Detail.aspx?ProductID={$T.record.ProductSummaryViewID}") %>">
<img class="item-productimage" src="<%=Page.ResolveUrl("~/Content/Images/Products/{$T.record.ProductSummaryViewID}.jpg") %>" />
</a>
<div class="item-productname">
<a href="<%=Page.ResolveUrl("~/Product/Detail.aspx?ProductID={$T.record.ProductSummaryViewID}") %>">{$T.record.BrandName} {$T.record.Name}</a>
</div>
<div class="item-price">{$T.record.Price}</div>
<div><input type="checkbox" class="" name="chkProduct" id="{$T.record.ProductSummaryViewID}" onclick="JavaScript:selectProduct({$T.record.ProductSummaryViewID})"/>Select me!</label></div>
</li>
{#/for}
</ul>
</script>