2016-11-10 69 views
0

我有两个单选按钮,我想隐藏,只需将下拉列表给用户选择。是否可以完全隐藏单选按钮而不隐藏下拉列表? $("[name^=UseAllCodes]").parent().hide();也隐藏了dd列表。有没有隐藏单选按钮,但不是下拉列表?

<table> 
<tr> 
<td><input type="radio" name="UseAllCodes" value="yes" checked onClick="attReset();"> All<br> 
<input type="radio" name="UseAllCodes" value="no" onClick="attReset();" id="theseCodes"> These codes <br> 
<select name="handpick" onChange="attToggleAndReset();" size="10" multiple> 
<option value="25248692">Code 1 
<option value="25248693">Code 2 
</select> 
</td> 
</tr> 
</table> 
+1

当然,不使用'父()'... –

+0

@MikeMcCaughan离开单选按钮 – Kaur

+0

你没有说你的问题的任何文字文本。你可能想要将每个文本和单选按钮包装在一个'label'元素中,并且给它们两个同样的类。然后就是'$('。classYouUsed')。hide();'。无论如何,使用'label'元素对于辅助功能会更好。 –

回答

1

如果你不能改变原有的HTML,但你不介意删除单选按钮,而不是隐藏它们,你可以做到以下几点:

var $select = $("[name=handpick]"); 
var $cell = $select.parent(); 
$select.detach(); 
$cell.empty().append($select); 

该分离的选择元素,然后清除表格单元格,最后放回选择元素。


jsfiddle

如果您仍需要单选按钮来处理这些值,你可以用一个隐藏的输入替换它们。

var $radio = $('#theseCodes'); 
var radioValue = $radio.val(); 
var radioName = $radio.attr('name'); 
var $cell = $radio.closest('td'); 
var $select = $cell.find('select'); 
$select.detach(); 
$cell.empty().append('<input type="hidden" name="' + radioName + '" value="' + radioValue + '" />').append($select); 

如果你要发布与隐藏在单选按钮的形式,其价值将不被包括在内,但一个隐藏的输入值会。

jsfiddle

+0

完美!谢谢! – Kaur

+0

除了它也删除了下拉列表。抱歉! – Kaur

+0

@Kaur - 我添加了一个jsfiddle显示它的工作。它不会删除jsfiddle中的下拉列表。 –

0

有多种方法可以做到这一点。

添加ID到您的单选按钮:

// Html 
<input type="radio" id="myIdHere" .... /> 
<input type="radio" class="myClass" .... /> 

// JS 
$("#myIdHere").hide() 
$(".myClass").hide() 

您可以通过输入类型切换:

$("input[type=radio]").hide() 

或者你能更具体,只有通过切换表内类型:

$("table").find("input[type=radio]").hide() 

您可能还有其他一些方法可以做到这一点,只是试验一下。

相关问题