2013-12-10 2 views
0

У меня есть asp: checkbox на моей странице, при определенных условиях, я хочу скрыть это. Я пытаюсь сделать это в функции JavaScript, установив style.display = 'none'. Но так или иначе asp: checkbox отображается как два элемента управления html, input и label. Вход ушел, но метка все еще там. Как правильно скрыть привязку asp: в JavaScript? Ниже мой код:Как установить видимость asp: checkbox в javascript

var checkBox= document.getElementById('ctl00_ContentPlaceHolder1_checkBox'); 
if (...) 
{ 
    checkBox.style.display='none'; 
} 

И следуя

<td> 
<asp:CheckBox ID="checkBox" runat="server" Text="Test" onclick="..."/></td> 

будет визуализируется как

<td><span disabled="disabled"><input id="ctl00_ContentPlaceHolder1_checkBox" type="checkbox" name="ctl00$ContentPlaceHolder1$checkBox" disabled="disabled" onclick="...;" /><label for="ctl00_ContentPlaceHolder1_checkBox">Test</label></span></td> 
+0

скрыть метку тоже. Это отдельный элемент ... или оберните флажок и ярлык в промежутке или что-то еще, и спрячьте это. – MikeSmithDev

+0

Что такое сгенерированный вывод? Вы используете jQuery? – epascarello

+0

Можете ли вы показать свою текущую функцию? –

ответ

1

Как сказал MikeSmithDev - вам нужно, чтобы скрыть свой лейбл, а также. В вас код, который вы можете добавить следующее:

var checkBoxLabel = document.querySelectorAll('label[for=ctl00_ContentPlaceHolder1_checkBox]'); 

if (checkBoxLabel.length > 0) checkBoxLabel[0].style.display='none'; 

Он находит метку с помощью атрибута for и если он существует - это скрывает.

Или еще проще - при условии, что метка всегда следует за вход:

if (...) 
{ 
    checkBox.style.display='none'; 
    checkBox.nextSibling.style.display='none'; 
} 

Это скроет элемент следующего флажка - ярлык.

Btw, если это применимо к вам - на стороне сервера это Oneliner

checkBox.Style["display"] = "none"; // will render the control hidden 

или

checkBox.Visible = false; // will not render control at all 
Смежные вопросы