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

HTML+CSS+JavaScript

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

 

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

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

тема: Выбрав нужный радиобаттон - снять/устанвоить disabled
 
 автор: TetRiska   (03.10.2009 в 18:20)   письмо автору
 
 

Имеется 2 радиобаттона и напротив каждого по текстовому полю...Изначально первый радиобаттон выбран автоматически, т.е. первое поле должно быть enabled, а второе disabled. Когда выбираем второй радиобаттон второе текстовое поле становится enabled, а первое - disabled. Подскажите как это реализовать? Заранее благодарен.

  Ответить  
 
 автор: mikha   (03.10.2009 в 18:58)   письмо автору
 
   для: TetRiska   (03.10.2009 в 18:20)
 

Если по простому
<script>
function myFunc(o){
  if(o.value == 'name1'){
    o.form.name1.disabled = false;
    o.form.name2.disabled = true;
  }else{
    o.form.name1.disabled = true;
    o.form.name2.disabled = false;
  }
}
</script>
<form action="" method="post" name="name_form">
  <input name="name_radio" type="radio" onClick="myFunc(this);" value="name1" checked>
  <input name="name1" type="text"><br />
  <input name="name_radio" type="radio" onClick="myFunc(this);" value="name2">
  <input name="name2" type="text" disabled>
</form>

  Ответить  
 
 автор: TetRiska   (03.10.2009 в 19:26)   письмо автору
 
   для: mikha   (03.10.2009 в 18:58)
 

благодарю за помощь :)

  Ответить  
 
 автор: TetRiska   (03.10.2009 в 23:17)   письмо автору
 
   для: TetRiska   (03.10.2009 в 19:26)
 

Возник небольшой нюанс.. Если в форму введено недостаточно данных то вывожу сообщение + к этому сохраняю уже введенные, т.е. существуют $_POST данные. Действия такие: Я выбрал радиобаттон №2 - нажал отправить - и если вывелось сообщение об ошибке, то в следствии с этим радиобаттон №1 становится активным, т.к. указывал в форме изначальное состояние checked. Как быть, чтобы не изменяло уже выбранный ранее радиобаттон?

  Ответить  
 
 автор: mikha   (04.10.2009 в 06:54)   письмо автору
 
   для: TetRiska   (03.10.2009 в 23:17)
 

Вот. Для понимания.
<?php
$name_radio 
= ( isset ( $_REQUEST['name_radio'] ) ) ? $_REQUEST['name_radio'] : 'name1';
$str = ( $name_radio and isset ( $_REQUEST[$name_radio] ) ) ? trim $_REQUEST[$name_radio] ) : '';
if ( !
$str $name_radio 'name1';

echo  
'<script>
function myFunc(o){
  if(o.value == \'name1\'){
    o.form.name1.disabled = false;
    o.form.name2.disabled = true;
  }else{
    o.form.name1.disabled = true;
    o.form.name2.disabled = false;
  }
}
</script>
<form action="" method="post" name="name_form">
<input name="name_radio" type="radio" onClick="myFunc(this);" value="name1"'
;
if ( 
$name_radio == 'name1' ) echo ' checked';
echo 
'>
<input name="name1" type="text"'
;
if ( 
$name_radio == 'name2' ) echo ' disabled'; else echo 'value="' $str '"';
echo 
'><br /> 
<input name="name_radio" type="radio" onClick="myFunc(this);" value="name2"'
;
if ( 
$name_radio == 'name2' ) echo ' checked';
echo 
'>
<input name="name2" type="text"'
;
if ( 
$name_radio == 'name1' ) echo ' disabled'; else echo 'value="' $str '"';
echo 
'><br />
<input name="zzz" type="submit" value="zzz">
</form>'
;
?>

UP. Или ещё вот
<?php
$name_radio 
= ( isset ( $_REQUEST['name_radio'] ) ) ? $_REQUEST['name_radio'] : 'name1';
$str = ( $name_radio and isset ( $_REQUEST[$name_radio] ) ) ? trim $_REQUEST[$name_radio] ) : '';
if ( !
$str $name_radio 'name1';
?>
<script>
function myFunc(o){
  if(o.value == 'name1'){
    o.form.name1.disabled = false;
    o.form.name2.disabled = true;
  }else{
    o.form.name1.disabled = true;
    o.form.name2.disabled = false;
  }
}
</script>
<form action="" method="post" name="name_form">
<input name="name_radio" type="radio" onClick="myFunc(this);" value="name1" checked>
<input name="name1" type="text" value=""><br /> 
<input name="name_radio" type="radio" onClick="myFunc(this);" value="name2">
<input name="name2" type="text" disabled value=""><br />
<input name="zzz" type="submit" value="zzz">
</form>
<script>
var name_radio = '<?php echo $name_radio?>';
var str ='<?php echo $str?>'; 
if ( name_radio == 'name2' ) {
  document.forms['name_form'].name2.value = str;
  document.forms['name_form'].name2.disabled = false;
  document.forms['name_form'].name1.disabled = true;
} else {
  document.forms['name_form'].name1.value = str;
  document.forms['name_form'].name1.disabled = false;
  document.forms['name_form'].name2.disabled = true;
}
for ( var i = 0, o = document.forms['name_form'].elements['name_radio'], len = o.length; i < len; i++ ) {
  o[i].checked = (o[i].value == name_radio) ? true : false;
}
</script>

  Ответить  
 
 автор: TetRiska   (04.10.2009 в 13:44)   письмо автору
 
   для: mikha   (04.10.2009 в 06:54)
 

благодарю, но я нашел более упрощенный способ, т.к. данные у меня обрабатываются на стороне сервера, то я делал проверку прямо в полях, т.е. ставил условие, которое бы определяло если есть ПОСТ данные определенного вида, то делать чекед или дисаблед :)

  Ответить  
Rambler's Top100
вверх

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