我有一个带有一个标题行和未知行数的表(取决于我的数据库中的记录数)。每行包含一组六个单选按钮,用户可以在其中选择该行记录的状态。为了使用户更容易,我想在标题行中放置六个 DIV:当用户单击第一个 DIV 时,然后在每一行上选择第一个单选按钮。这样,用户不必单击每一行中的第一个单选按钮。它不一定是 DIV:按钮、复选框或其他任何东西对我来说都很好..
我想出的是:
$table = "<th ><span id=\"rsn1\" title=\"For info\" align=\"center\">[1]</span></th>"
. "<th ><span id=\"rsn2\" title=\"For comment\">[2]</span></th>"
. "<th ><span id=\"rsn3\" title=\"For approval\">[3]</span></th>"
. "<th ><span id=\"rsn4\" title=\"For discussion\">[4]</span></th>"
. "<th ><span id=\"rsn5\" title=\"For archive\">[5]</span></th>"
. "<th ><span id=\"rsn6\" title=\"As built\">[6]</span></th>";
这会产生带有 DIV 的标题行的一部分。为了生成 tablerow,我为每个 row->id 创建了这个:
$table .= "<td ><div class=\"radio image\"><input type=\"radio\" class=\"trerr mrsn1\" name=\"revRsn|".$result->id."\" value=\"yes\" /></td>"
. "<td><input type=\"radio\" class=\"trerr mrsn2\" name=\"revRsn|".$result->id."\" value=\"no\" /></td>"
. "<td><input type=\"radio\" class=\"trerr mrsn3\" name=\"revRsn|".$result->id."\" value=\"dunno\" /></td>"
. "<td><input type=\"radio\" class=\"trerr mrsn4\" name=\"revRsn|".$result->id."\" value=\"no\" /></td>"
. "<td><input type=\"radio\" class=\"trerr mrsn5\" name=\"revRsn|".$result->id."\" value=\"yhgfes\" /></td>"
. "<td><input type=\"radio\" class=\"trerr mrsn6\" name=\"revRsn|".$result->id."\" value=\"nfo\" /></div></td>";
我使用的 jquery 是这样的:
$(文档).ready(函数(){
$("#rsn1")
.css("cursor", "pointer")
//.click(function(){ $('.mrsn1').prop('checked', true); }
//.click(function(){alert("OK");})
.click(function(){ $('input:radio[class="trerr mrsn1"]').prop('checked', true); }
//alert("OK");
//$('.mrsn1').attr('checked', true);
//$('.mrsn1]').prop('checked', true);
);
$("#rsn2")
.css("cursor", "pointer")
.click(function(){ $('input:radio[class=mrsn2]').prop('checked', true); }
);
$("#rsn3")
.css("cursor", "pointer")
.click(function(){ $('input:radio[class=mrsn3]').prop('checked', true); }
);
$("#rsn4")
.css("cursor", "pointer")
.click(function(){ $('input:radio[class=mrsn4]').prop('checked', true); }
);
$("#rsn5")
.css("cursor", "pointer")
.click(function(){ $('input:radio[class=mrsn5]').prop('checked', true); }
);
$("#rsn6")
.css("cursor", "pointer")
.click(function(){ $('input:radio[class=mrsn6]').prop('checked', true); }
);
$('.trerr')
.transformRadio({
checked : "img/chk_on.png", // Checked image to show
unchecked : "img/chk_off.png", // Unchecked image to show
changeHandler: function (is_checked) {
// This is where the radio updates the reason
alert($(this).val())
}
});
});
问题在于我使用的双类名称:只要我使用只有一个类的普通单选按钮集,这条线$('input:radio[class=mrsn5]').prop('checked', true);
就可以正常工作。但是,当我试图通过用图像替换单选按钮来使它更漂亮时(为此我需要额外的类“trerr”(不要介意愚蠢的名字)),我将代码更改为$('input:radio[class="trerr mrsn1"]').prop('checked', true);
,但不知何故不起作用。我试过没有双引号,也试过了,$('#mrsn1').prop('checked', true);
但它们似乎都不起作用。
有谁知道我做错了什么?
更新 **
哇,那是快速回复1thanx。我只是忽略了我还没有从“美化”单选按钮刷新图像,但这是我需要解决的另一个问题!