2010-09-01 31 views
2

我有以下代码:当我点击第一个复选框jQuery的:选择下一个嵌套输入

<td><input class="publish" id="publish_company_ids" name="publish_company_ids[]" type="checkbox" value="1" /></td> 

<td><input class="discard" id="discard_company_ids" name="discard_company_ids[]" type="checkbox" value="1" /></td> 

我想,第二个复选框被禁用。我试图这个jquery代码:

$(".publish").click(function() { 
$(this).parent().next("td > input[text='checkbox']").css("border","1px solid green"); 
}); 

我试图通过更改CSS边界,但它不起作用。

回答

1

首先,您的选择器中有text而不是type

第二,如果没有帮助,试试这个:

$(this).parent().next('td').children('input:checkbox').css('border','1px solid green'); 
+0

它的工作,只是它不希望的CSS变化(这并不适用的边界),所以我拨动更换( ),它的工作。我尝试了很多东西,但只有这个工作。谢谢 – JohnDel 2010-09-01 20:03:05

+0

不客气! =) – 2010-09-01 20:43:08

2

如果你想允许用户只选择复选框中的一个,那么你应该单选按钮而不是复选框。

+0

如果我添加单选按钮,我将不得不添加3个收音机,以防有人想取消选择该选项。 – JohnDel 2010-09-01 13:11:13

+0

您不必添加三个收音机,但您不需要默认选择任何收音机。而已。你将有三个结果。一个是publish_company_ids,discard_company_ids和null,你不会得到任何价值。 – 2010-09-01 13:16:20

+1

如果用户不小心选择了一个选项,并希望在取消选择它之后,我必须添加它。 – JohnDel 2010-09-01 13:19:31

0

尝试:

$(".publish").click(function() { 
$(this).parent().find("input.discard").css("border","1px solid green"); 
}); 

或者:

$(".publish").click(function() { 
$(this).parent().children("input.discard").css("border","1px solid green"); 
});