|
|
|
| Имеется 2 радиобаттона и напротив каждого по текстовому полю...Изначально первый радиобаттон выбран автоматически, т.е. первое поле должно быть enabled, а второе disabled. Когда выбираем второй радиобаттон второе текстовое поле становится enabled, а первое - disabled. Подскажите как это реализовать? Заранее благодарен. | |
|
|
|
|
|
|
|
для: 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>
|
| |
|
|
|
|
|
|
|
для: mikha
(03.10.2009 в 18:58)
| | благодарю за помощь :) | |
|
|
|
|
|
|
|
для: TetRiska
(03.10.2009 в 19:26)
| | Возник небольшой нюанс.. Если в форму введено недостаточно данных то вывожу сообщение + к этому сохраняю уже введенные, т.е. существуют $_POST данные. Действия такие: Я выбрал радиобаттон №2 - нажал отправить - и если вывелось сообщение об ошибке, то в следствии с этим радиобаттон №1 становится активным, т.к. указывал в форме изначальное состояние checked. Как быть, чтобы не изменяло уже выбранный ранее радиобаттон? | |
|
|
|
|
|
|
|
для: 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>
|
| |
|
|
|
|
|
|
|
для: mikha
(04.10.2009 в 06:54)
| | благодарю, но я нашел более упрощенный способ, т.к. данные у меня обрабатываются на стороне сервера, то я делал проверку прямо в полях, т.е. ставил условие, которое бы определяло если есть ПОСТ данные определенного вида, то делать чекед или дисаблед :) | |
|
|
|