2016-11-10 68 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() 

您可能還有其他一些方法可以做到這一點,只是試驗一下。

相關問題