2014-10-26 2 views
-1

Я хочу использовать флажок, чтобы изменить видимость абзаца в JavaScript. Я хотел бы сделать это в чистом JavaScript и не использовать какие-либо библиотеки, такие как jQuery. Кроме того, я хотел бы сделать это в JSFiddle.Флажки для включения и выключения текста

Я знаю, что один жизнеспособное решение заключается в использовании: document.formName.checkboxName.checked так:

function show { 
    document.getElementById("paragraphName").style.visibility=(document.formName.checkboxName.checked) ? "visible" : "hidden"; 
} 

, но это решение не работает в JSFiddle.

Как мне это сделать?

+2

где скрипка? –

+0

Это сценарий, который у меня есть: http://jsfiddle.net/ljnissen/vcjpoooy/ – ljnissen

+0

'paragraphName' должен быть' paragraphId', вам нужен идентификатор здесь, а не имя. –

ответ

1

HTML-

<label><input id="chk1" name="chk1" type="checkbox" onclick="nhamnham()"/>Hide p</label> 
<p id="par">Text in the paragraph...</p> 

J S

function nhamnham() { 
    if(document.getElementById("chk1").checked) {  
     document.getElementById("par").style.visibility="hidden"; 
    } else { 
     document.getElementById("par").style.visibility="visible"; 
    } 
} 

Проверить здесь JSFiddle

+0

Хорошее опрятное решение. Спасибо! – ljnissen

+1

Некоторые примечания: лучше избегайте встроенных обработчиков событий; флажки могут меняться другими способами, кроме кликов; Элементы 'input' не имеют содержимого и закрывающего тега; вы можете использовать трехмерный оператор для упрощения. – Oriol

0

Вы можете попробовать CSS только решение:

#toggler ~ #toggler-target { 
 
    display: none; 
 
} 
 
#toggler:checked ~ #toggler-target { 
 
    display: block; 
 
}
<input type="checkbox" id="toggler" /> 
 
<label for="toggler">Toggle</label> 
 
<p id="toggler-target">Foo bar baz</p>

+0

Это аккуратно, но я хотел бы сделать это в JavaScript. – ljnissen

1

попробовать это ..

window.onload = function init() { 
    checkbox = document.getElementById("checkbox1"); 
    checkbox.checked = true; 
    checkbox.onchange = function(){ 
    document.getElementById("first").style.display = checkbox.checked?'block':'none'; 
    } 
}  
+0

Ваше решение хорошее, но это немного подробный. Я предпочитаю тот, который был Henriquedsg89. – ljnissen

+0

Да. Я также предпочитаю путь Henriquedsg89 .. :) –

1

Вам нужно вызвать функцию init() {согласно скрипке ссылки вы предоставили} на onclick в флажке:

<form name="formex"> 
<input id="checkbox1" type="checkbox" name="firstpara" onclick="init();" />First paragraph<br/> 
</form> 
<p id="first">This is a paragraph</p> 

И JS быть как:

function init() { 

if(document.getElementById("checkbox1").checked === false) { 
    document.getElementById("first").style.display = 'none'; 
} 

else 
    document.getElementById("first").style.display = 'block'; 

} 

FIDDLE

0

var par = document.getElementById('par'); 
 
document.getElementById('chk1').addEventListener('change', function() { 
 
    par.style.visibility = this.checked ? "hidden" : "visible"; 
 
});
<label><input id="chk1" name="chk1" type="checkbox">Toggle</label> 
 
<p id="par">Text in the paragraph...</p>

Смежные вопросы