Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   спрятать/показать поле ввода при нажатии на checkbox (https://javascript.ru/forum/dom-window/8759-spryatat-pokazat-pole-vvoda-pri-nazhatii-na-checkbox.html)

NAMAT 26.09.2011 03:13

<input type="checkbox" checked="checked" onclick="if(this.checked){this.nextSibling.style.display=''}else {this.nextSibling.style.display='none';  this.nextSibling.value='';}"><input type="text" placeholder="Название турнира">

как в этом коде зделать штобы галочка изночально не стояла а при постановке галочки поевлялось поле

yashka525 26.09.2011 06:12

<input type="checkbox"  onclick="if(this.checked){document.getElementById('nextSibling').style.display='inline-block'}else {document.getElementById('nextSibling').style.display='none';  document.getElementById('nextSibling').value='';}">
<input type="text" placeholder="Название турнира" style="display: none;" id="nextSibling">

NAMAT 26.09.2011 08:19

Цитата:

Сообщение от yashka525 (Сообщение 128077)
<input type="checkbox"  onclick="if(this.checked){document.getElementById('nextSibling').style.display='inline-block'}else {document.getElementById('nextSibling').style.display='none';  document.getElementById('nextSibling').value='';}">
<input type="text" placeholder="Название турнира" style="display: none;" id="nextSibling">

спасибо

yashka525 26.09.2011 08:22

;) Не за что, я бы сделал отдельную функцию как описывалось ранее, и onclick бы выполнял функцию. Но это уже дело привычки, как кому удобно.

NAMAT 26.09.2011 08:27

Fatal error: Smarty error: [in W:\html\home-cs.lc\www/plugins/clans/templates/skin/default/actions/ActionClans/wars_create.tpl line 45]: syntax error: unrecognized tag: document.getElementById('nextSibling').style.display='inline-block' (Smarty_Compiler.class.php, line 446) in W:\html\home-cs.lc\www\engine\lib\external\Smarty-2.6.19\libs\Smarty.class.php on line 1092
мне вот такую ошибку выдает при открывании станицы с данным кодом

на этот код

<input type="checkbox" checked="checked" onclick="if(this.checked){this.nextSibling.style.display=''}else {this.nextSibling.style.display='none';  this.nextSibling.value='';}"><input type="text" placeholder="Название турнира">


он не ругался вабше

NAMAT 26.09.2011 08:56

а все поченил сам =)

BLP 14.10.2012 19:24

А подскажите, плз, как сделать так, чтобы когда чекбокснул - скрывалось (открывалось) не одно поле, а несколько...

lord2kim 14.10.2012 20:02

BLP, засуньте эти несколько полей в span или div и скрывайте (открывайте) уже его...

BLP 14.10.2012 22:01

Я уже сделал... Не знаю, насколько ЭТО красиво, может можно было проще.... Просто перечислил все поля в вышеприведенном здесь коде и всё работает:

<input type="checkbox"  onclick="if(this.checked){document.getElementById('Sex').style.display='none'; 
               document.getElementById('PB2001').style.display='none';
               document.getElementById('PN2001').style.display='none';
               document.getElementById('PB').style.display='none';
               document.getElementById('PN').style.display='none';
               document.getElementById('dd').style.display='none';
               document.getElementById('mm').style.display='none';
               document.getElementById('yy').style.display='none';
               }
               else {document.getElementById('Sex').style.display='inline-block';
               document.getElementById('PB2001').style.display='inline-block';
               document.getElementById('PN2001').style.display='inline-block';
               document.getElementById('PB').style.display='inline-block';
               document.getElementById('PN').style.display='inline-block';
               document.getElementById('dd').style.display='inline-block';
               document.getElementById('mm').style.display='inline-block';
               document.getElementById('yy').style.display='inline-block';
               }
               " />



У меня идет проверка через js файл на предмет, заполнено поле или нет... вот так (часть кода) :
if (document.entry_form.PB2001.value == "?") {
    utils.addClassName(f34, 'error');
  } else {  
    utils.addClassName(f34, 'ok');
  }


Теперь мне надо сделать здесь, чтобы была проверка на Чекбокс... т.е.
если Чекбокс отмечен, то ничего не происходит, а если нет, то выполняется этот код... т.е. форма не отправляется, пока данное поле не будет заполнено...
Пока не понадобился чекбокс все работает и проверяется...

lord2kim 14.10.2012 23:16

BLP,
<html>
<head>
<script>
function func() {
    if (document.getElementById("cbx").checked) {
        if (document.getElementById("txt1").value == "" || document.getElementById("txt2").value == "") {
            return alert("незаполнено");
        }
        document.getElementById("form").submit();
    }
    else {
        document.getElementById("form").submit();
    }
}
</script>
</head>
<body>
<form action="http://javascript.ru" id="form">
<input type="checkbox" id="cbx" onClick="this.checked ? document.getElementById('div').style.display='block' : document.getElementById('div').style.display='none'">
<div style="display:none;" id="div">
<textarea id="txt1"></textarea><textarea id="txt2"></textarea>
</div>
<input type="button" value="Отправить" onClick="func()">
</form>
</body>
</html>


Часовой пояс GMT +3, время: 18:10.