Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: событие onCheck в checkbox
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » событие onCheck в checkbox

Страниц (1): [1]
 

1. Altynayka - 14 Мая, 2008 - 08:36:51 - перейти к сообщению
Помогите пожалуйста .
Дело в том, что
когда я пишу:
<input type="checkbox" name=one onClick="setStyle1();">
то функция
"setStyle1();" срабатывает.
Скажите пожалуйста, а как обработать событие,если checkbox не активен.
2. EuGen - 14 Мая, 2008 - 09:54:39 - перейти к сообщению
Можете сделать как-то так:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <script type="text/javascript">
  3. function eventHandler()
  4. {
  5.    var checkB=document.testform.ch1;
  6.    //далее работаете с Вашим чекбоксом и стилями как Вам нужно
  7.    //то есть можно проверить его значение и делать разные вещи в зависимости от этого
  8. }
  9. </script>
  10. <form name="testform" action="test.php">
  11. <input type="checkbox" name="ch1" value=1 onChange="eventHandler()">
  12. </form>
  13.  
3. Altynayka - 14 Мая, 2008 - 10:51:48 - перейти к сообщению
А как , если я проверяю значение в файле .js
и функция выглядит след. образом:
CODE (text):
скопировать код в буфер обмена
  1. function setStyle1()
  2. {
  3.        
  4.         checkB=document.getElementById("chk1");
  5.         oTable=document.getElementById("table");
  6.         oTableHead=document.getElementById("tableHead");
  7.         oTableFirstLine=document.getElementById("tableFirstLine");
  8.         oTableSecondLine=document.getElementById("tableSecondLine");
  9.  
  10.  
  11.         if (checkB=="1")
  12.         {
  13.         oTable.className="Table1";
  14.         oTableHead.className="TableHead1";
  15.         oTableFirstLine.className="TableContent1";
  16.         oTableSecondLine.className="TableContent1";
  17.         }
  18.         else
  19.         {
  20.         oTable.className="Table2";
  21.         oTableHead.className="TableHead2";
  22.         oTableFirstLine.className="TableContent2";
  23.         oTableSecondLine.className="TableContent2";
  24.  
  25.         }

Не обрабатывает
, ну то есть мне надо , чтобы при выбранном чекбоксе обрабатывалась первая часть, а если не выбрана- вторая.
4. EuGen - 14 Мая, 2008 - 11:12:10 - перейти к сообщению
Потому что Вы, например неправильно обращаетесь к текущему значению чекбокса. Вы сам чекбокс сравниваете с некоторым значением. Правильнее будет проверка:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. if(checkB.checked)
  3. {
  4. //...
  5. }
  6.  
5. Altynayka - 14 Мая, 2008 - 11:35:05 - перейти к сообщению
Спасибо,все получилось.

Можно еще спросить, как добавить элемент формы "выпадающий список", если чекбокс == истина, т.е. при нажатии на чекбокс, появлялся элемент "выпадающий список".
6. SergeantPEPPER - 14 Мая, 2008 - 14:19:24 - перейти к сообщению
Тут вроде не один способ есть:

Приведу известный мне: в форме изначально прописывается select , но не просто, а спрятанный от пользователя. Заетм следовательно, если событие чекбокса произошло, меняем статус "спрятанный" на статус "видимый".

Вот фрагмент кода с селектом: (скорее всего его можно доработать, ибо выглядит чуток коряво):

CODE (text):
скопировать код в буфер обмена
  1. <div id="selline1" style="visibility: hidden;"><select name="s1"><option>...</option></select></div>


В ЯваСкртипте дале так будет:

CODE (text):
скопировать код в буфер обмена
  1. document.getElementById('selline1').style.visibility = visible;


Есил у Вас табличная структура, то можно воспользоваться стилем <tr>:
CODE (text):
скопировать код в буфер обмена
  1. style="display: hidden;"
и
CODE (text):
скопировать код в буфер обмена
  1. style="display: inline;"
7. Altynayka - 15 Мая, 2008 - 06:19:44 - перейти к сообщению
SergeantPEPPER
спасибо большое.
8. Altynayka - 23 Мая, 2008 - 09:42:57 - перейти к сообщению
вопрос продолжающий данную тему.
Я написала скрипт, при котором после нажатия на checkbox, если true, то выходит select , где я выбираю из списка одно значение, после чего это значение, выбранное из списка выводится в опрделенном месте.
Только вывод идет в input texte.
<input class="select1" TYPE="text" id="text1" NAME="textFullDate" VALUE="" size="5" font-size="5">
что нужно изменить, чтобы это значение выводилось более мелким шрифтом и как изменить размеры input textа, если возможно.
Или как выводить это значение не как input text, а по другому, может быть?
Сам скрипт:
CODE (text):
скопировать код в буфер обмена
  1. function updateselect(tipObj)
  2. {
  3.         var tipInteger, tipString      
  4.         tipInteger=tipObj.selectedIndex
  5.         tipString=tipObj.options[tipInteger].text
  6.         document.forma.textFullDate.value=tipString
  7. }
  8.  
  9.  
  10.  

обработка в html:
CODE (text):
скопировать код в буфер обмена
  1. <td width="100"><div id="s1" class="select2" >
  2.                 <select name="s1" size="1" onChange="updateselect(this);">
  3.                         <option value="optval12">1line</option>
  4.                         <option value="optval13">2line</option>
  5.                         <option value="optval14">3line</option>
  6.                 </select></div></td>
9. SION-ZENIT - 24 Мая, 2008 - 11:26:21 - перейти к сообщению
Altynayka пишет:
что нужно изменить, чтобы это значение выводилось более мелким шрифтом и как изменить размеры input textа

CODE (text):
скопировать код в буфер обмена
  1.  
  2. yourObj.style.fontSize = "9 px";
  3. yourObj.style.width = "100px";
  4. yourObj.style.height = "100px";
  5.  

Altynayka пишет:
Или как выводить это значение не как input text, а по другому, может быть?

CODE (text):
скопировать код в буфер обмена
  1.  
  2. var dv = document.getElementById("yourDiv");
  3. dv.appendChild(document.createTextNode("yourText"));
  4.  

Примерно как то так, у вас на странице еще должен быть элемент с id="yourDiv"
10. Altynayka - 26 Мая, 2008 - 07:21:35 - перейти к сообщению
SION-ZENIT
спасибо большое!
Получилось при использовании 2 метода.
но возник еще один вопрос.
как очищать значение в div, перед тем как ему будет присваиваться новое значение.
У меня в этот элемент записывается значение из select, при каждом новом выборе из списка К старому добавляется новое.
А нужно чтобы отображалось только новое.

 

Powered by ExBB FM 1.0 RC1