Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Спрятать/показать поля формы в зависимости от значения кнопки radio
 
 автор: antf   (10.02.2007 в 19:54)   письмо автору
 
 

Здравствуйте.
Задача тривиальная, но все же спрошу. Есть два текстовых поля и есть две кнопки radio ('radio', 'checkbox'). Так вот как сделать так, что если выбран вариант 'checkbox' текстовые поля показывались, а если 'radio' - прятались?



<table class='Tbl' cellpadding='0' cellspacing='0' border='0'>
    <tr>
      <td class='Capt'>Тип опроса</td>
      <td class=''>
        <input type='radio' name='type' value='radio'><span class='Text'>radio</span><br>
        <input type='radio' name='type' value='checkbox'><span class='Text'>checkbox</span>
      </td>
    </tr>
    
    <tr>
      <td class='Capt'><span class='Mustred'>Min:</span></td>
      <td class=''><input type='text' size='4' class='Input350' name='min' value='{$min}'></td>
    </tr>
    <tr>
      <td class='Capt'><span class='Mustred'>Max:</span></td>
      <td class=''><input type='text' size='4' class='Input350' name='max' value='{$max}'></td>
    </tr>
  </table>

Заранее спасибо.

   
 
 автор: elenaki   (10.02.2007 в 20:27)   письмо автору
 
   для: antf   (10.02.2007 в 19:54)
 

то, что надо скрывать/показывать, надо положить в слой. а потом менять у этого слоя свойство видимости. вот метод (я им пользовалась давно, сейчас использую библиотеку klayers для любых действий со слоями, библиотеку тут приводить не буду, ее можно найти в интернете):


<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
function getObject(obj) { 
    var theObj 
    if (document.layers) { 
        if (typeof obj == "string") { 
            return document.layers[obj]; 
        } else { 
            return obj; 
        } 
    } 
    if (document.all) { 
        if (typeof obj == "string") { 
            return document.all(obj).style; 
        } else { 
            return obj.style; 
        } 
    } 
    if (document.getElementById) { 
        if (typeof obj == "string") { 
            return document.getElementById(obj).style; 
        } else { 
            return obj.style; 
        } 
    } 
    return null 

// set the visibility of an object to visible 
function show(obj) { 
    var theObj = getObject(obj); 
    theObj.visibility = "visible";


// set the visibility of an object to hidden 
function hide(obj) { 
    var theObj = getObject(obj); 
    theObj.visibility = "hidden";

-->
</script>


<table>
<tr>
<div><td bgcolor=dff5ff><b>* Способ оплаты:</b></td>
<TD width=250 bgcolor=dff5ff>
<input type=Radio name=tropos value=anti  onclick="hide('info');">&nbsp;Предоплата&nbsp;<br>
<input type=Radio name=tropos value=trap  onclick="hide('info');">&nbsp;Через банк&nbsp;<br>
<input type=Radio name=tropos onclick="hide('info');" value=cash>&nbsp;Наличными&nbsp;<br>
<input type=Radio name=tropos onclick="show('info');" value=cred  CLASS=expandable child=info>&nbsp;По кредитной карте&nbsp;<br>
</div>
<DIV ID=info  style="visibility:hidden; width: 350;"><b>* На <input type=text name=Period size=2>&nbsp;месяцев</b> (от 3 до 48)&nbsp;&nbsp;
</DIV>
</td>
</tr>
</table>

   
 
 автор: antf   (10.02.2007 в 21:05)   письмо автору
 
   для: elenaki   (10.02.2007 в 20:27)
 

del

   
 
 автор: antf   (10.02.2007 в 21:06)   письмо автору
 
   для: elenaki   (10.02.2007 в 20:27)
 

Работает, спасибо. Вот только на месте полей образуется пустота. Не подскажете как убрать? Пытался делать так:

function hide(obj) {
       var theObj = getObject(obj);
       theObj.visibility = "hidden";
    theObj.height = 0;
     }

Не выходит. В качестве theObj выступает таблица.

   
 
 автор: AlexSol   (10.02.2007 в 21:51)   письмо автору
 
   для: antf   (10.02.2007 в 21:06)
 

замени

.visibility = "hidden";
на .display="none" и для видимости .display=" "

   
 
 автор: antf   (10.02.2007 в 22:03)   письмо автору
 
   для: AlexSol   (10.02.2007 в 21:51)
 

Пробовал уже :). Он, хитрый, в ошибках пишет.Не удается найти свойство display, недопустимый аргумент.

   
 
 автор: AlexSol   (10.02.2007 в 22:26)   письмо автору
 
   для: antf   (10.02.2007 в 22:03)
 


<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript"> 
<!-- 
// set the visibility of an object to visible  
function show(obj) {  
    var theObj = document.getElementById(obj).style;  
    theObj.display  = "block"; 
}  

// set the visibility of an object to hidden  
function hide(obj) {  
    var theObj = document.getElementById(obj).style;  
    theObj.display = "none"; 
}  
--> 
</script> 
table> 
<tr> 
<div><td bgcolor=dff5ff><b>* Способ оплаты:</b></td> 
<TD width=250 bgcolor=dff5ff> 
<input type=Radio name=tropos onclick="hide('info');" value=cash>&nbsp;Наличными&nbsp;<br> 
<input type=Radio name=tropos onclick="show('info');" value=cred  CLASS=expandable child=info>&nbsp;По кредитной карте&nbsp;<br> 
</div> 
<DIV ID=info  style="display:none; width: 350;"><b>* На <input type=text name=Period size=2>&nbsp;месяцев</b> (от 3 до 48)&nbsp;&nbsp; 
</DIV> 
</td> 
</tr> 
</table> 

   
 
 автор: antf   (10.02.2007 в 23:27)   письмо автору
 
   для: AlexSol   (10.02.2007 в 22:26)
 

Работает. Спасибо.

   
 
 автор: Shokan   (21.08.2007 в 14:31)   письмо автору
 
   для: antf   (10.02.2007 в 23:27)
 

а как сделать так что бы не помощью радиобаттона а при нажатии на текст скрывалось и отображалось форма

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования