好的,所以我使用SUPERSIMPLE代码检查我的复选框。我的元素上有一个不可见的ahref,旁边有一个复选框。这是html:
<a href="#" class="transparent-checkbox-thingy" id="<?php echo $id;?>" onclick="check(<?php echo $id;?>)"></a>
<input type="checkbox" value="<?php echo $id;?>" name="users[]" class="newconvo-check" id="<?php echo $id;?>">
所以我尝试使用此方法,其中我的check()
函数和输入标记具有相同的ID,使用以下JQ:
function check(id)
{
var newid = '#'+id;
$(newid).prop('checked', true);
};
或者这个
function check(id)
{
$('#' + id).prop('checked', true);
};
或者这个
function check(id)
{
$(id).prop('checked', true);
};
它们都不起作用。他们会在alert(id)
或alert(newid)
上返回有效信息,但他们不会检查该死的复选框。所以我尝试了这个:
$(document).ready(function() {
$("a.transparent-checkbox-thingy").click(function(event) {
event.preventDefault();
var thisid = ('#' + event.target.id);
$(thisid).prop('checked', true);
});
});
没有工作。所以我尝试了这个
$(document).ready(function() {
$("a.transparent-checkbox-thingy").click(function(event) {
event.preventDefault();
$('#1').prop('checked', true);
});
});
没有工作。是的,<input type="checkbox">
总是id="1"
。这就是我正在测试的那个。是的,我有这个
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
答案 0 :(得分:3)
您在<a>
和<input type="checkbox"
中使用了相同的ID,ID是唯一的,您无法将其用作多个地方
<a href="#" class="transparent-checkbox-thingy" id="<?php echo $id;?>" onclick="check(<?php echo $id;?>)"></a>
<input type="checkbox" value="<?php echo $id;?>" name="users[]" class="newconvo-check" id="<?php echo $id;?>">
使用此,
<a href="#" class="transparent-checkbox-thingy" id="<?php echo $id;?>" onclick="check(<?php echo $id;?>)">Check</a>
<input type="checkbox" value="<?php echo $id;?>" name="users[]" class="newconvo-check" id="c_<?php echo $id;?>">
<script type="text/javascript">
function check(id)
{
var newid = '#c_'+id;
$(newid).prop('checked', true);
};
</script>
答案 1 :(得分:1)
首先,id
是唯一的,您不能在两个地方使用相同的ID。
没有ID,您可以将选择器用作$('input[type="checkbox"]')
,就像这样
$('input[type="checkbox"]').prop('checked',true);
或者你可以像这样使用class
$('.newconvo-check').prop('checked',true);
答案 2 :(得分:1)
试试这个例子,它可以帮助你..
<强> Fiddle 强>
<a href="#" class="transparent-checkbox-thingy" id="1" onclick="check(1)">sdfsf</a>
<input type="checkbox" value="1" class="newconvo-check" id="2" >
$("a.transparent-checkbox-thingy").click(function(event) {
// alert('working')
$('#2').attr("checked","checked");
});
答案 3 :(得分:1)
试试这个
function checkcheck(id)
{
$('input[id^="'+id+'"]').prop('checked', true);
}
工作演示:http://jsfiddle.net/8L5k4/1/
它的工作正常。但我不知道它是如何工作的
我试过$("input#"+id")
它没有工作,所以我尝试了这个,它的工作:)
答案 4 :(得分:0)
id必须以字母(不是数字)开头。如果你的id =“1”,那么它是一个无效的选择器,这就是为什么它没有被检查。
编辑:
来自HTML 4 spec:
ID和NAME令牌必须以字母([A-Za-z])开头,可能是 后跟任意数量的字母,数字([0-9]),连字符(“ - ”), 下划线(“_”),冒号(“:”)和句点(“。”)。
所以...你的问题可能源于在页面上有多个ID,但由于标记无效,你仍然会在某些浏览器中破坏选择器。