[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Взаимодействие полей "radio" с "input"
Страницы: 1, 2
segazav
Пытаюсь наладить взаимодействие радио-кнопок с текстовым полем, но видимо где то ошибся, т.к. поле цены всегда disabled и значения радио-кнопок подставляются не верно.

А именно:
1) при выборе кнопки "Конкретная сумма" поле цены должно быть доступным для заполнения;
2) при выборе кнопки "от" или "до" - эти частицы должны подставиться в начало поля цены, с возможностью добавления суммы;
3) при выборе "договорная" или "даром" эти значения должно прописаться в поле цены с запретом на редактирования поля цены.

echo "<script language='JavaScript'> // функция для автоматического заполнения цены
function avto_price()
{
if ($('#summa3').val()) $('#price').attr('disabled', false);
if ($('#summa1').val()) $('#price').val('от ').attr('disabled', false);
if ($('#summa2').val()) $('#price').val('до ').attr('disabled', false);
if ($('#summa4').val()) $('#price').val('договорная').attr('disabled', true);
if ($('#summa5').val()) $('#price').val('даром').attr('disabled', true);
}
</script>"
;



echo '<tr><td align="right" valign="top" nowrap><label><span class="text_b">Цена</span></label></td>
<td align="left" valign="middle">
<input type="radio" name="summa" value="3" id="summa3" '
.@$summa3.' onchange="avto_price()"><label class="text_ser">Конкретная сумма</label>
<input type="radio" name="summa" value="1" id="summa1" '
.@$summa1.' onchange="avto_price()"><label class="text_ser">От</label>
<input type="radio" name="summa" value="2" id="summa2" '
.@$summa2.' onchange="avto_price()"><label class="text_ser">До</label>
<input type="radio" name="summa" value="4" id="summa4" '
.@$summa4.' onchange="avto_price()"><label class="text_ser">Договорная</label>
<input type="radio" name="summa" value="5" id="summa5" '
.@$summa5.' onchange="avto_price()"><label class="text_ser">Даром</label><br>
<input name="price" class="pole" type="text" spellcheck="true" id="price" value="'
.$price.'" size="15" maxlength="15" disabled> <span class="text_ser"> руб.</span>
</td></tr>'
;
AllesKlar
Пройдись дебагером в инспекторе в браузере, увидишь ошибки логики.



_____________
[продано копирайтерам]
SerginhoLD
вот эти все похожие записи постоянно срабатывают, т.к.
if ( // если
$('#summa').val() // значение
// тут всегда условие проходит, т.к. val() возвращает значение radio, а не проверяет выбрано ли оно

)

http://api.jquery.com/prop/


_____________
"internet explorer всех правильней отображает страницы" ©
segazav
Но так тоже не работает:


echo "<script language='JavaScript'> // функция для автоматического заполнения цены
function avto_price()
{
if ($('#summa3').prop('checked', true)) $('#price').attr('disabled', false);
if ($('#summa1').prop('checked', true)) $('#price').val('от ').attr('disabled', false);
if ($('#summa2').prop('checked', true)) $('#price').val('до ').attr('disabled', false);
if ($('#summa4').prop('checked', true)) $('#price').val('договорная').attr('disabled', true);
if ($('#summa5').prop('checked', true)) $('#price').val('даром').attr('disabled', true);
}
</script>"
;
SerginhoLD
disabled это тоже prop

_____________
"internet explorer всех правильней отображает страницы" ©
segazav
Не понимаю, в чем причина (наверно потому, что я новичок в jquery)???

Все варианты не рабочие, цена всегда disabled и при выборе любой кнопки подставляется значение "даром"

echo "<script language='JavaScript'> // функция для автоматического заполнения цены
function avto_price()
{
if ($('#summa3').prop('checked', true)) $('#price').prop('disabled', false);
if ($('#summa1').prop('checked', true)) $('#price').val('от ').prop('disabled', false);
if ($('#summa2').prop('checked', true)) $('#price').val('до ').prop('disabled', false);
if ($('#summa4').prop('checked', true)) $('#price').val('договорная').prop('disabled', true);
if ($('#summa5').prop('checked', true)) $('#price').val('даром').prop('disabled', true);
}
</script>"
;


echo "<script language='JavaScript'> // функция для автоматического заполнения цены
function avto_price()
{
if ($('#summa3 input:checked')) $('#price').attr('disabled', false);
if ($('#summa1 input:checked')) $('#price').val('от ').attr('disabled', false);
if ($('#summa2 input:checked')) $('#price').val('до ').attr('disabled', false);
if ($('#summa4 input:checked')) $('#price').val('договорная').attr('disabled', true);
if ($('#summa5 input:checked')) $('#price').val('даром').attr('disabled', true);
}
</script>"
;
SerginhoLD
$('#summa3').prop('checked', true)

это отмечает, а не проверяет

_____________
"internet explorer всех правильней отображает страницы" ©
segazav
Ну а как сделать, чтобы проверяло?

if ($('#summa3 input:checked').val()) $('#price').attr('disabled', false);
if ($('#summa1 input:checked').val()) $('#price').val('от ').attr('disabled', false);
if ($('#summa2 input:checked').val()) $('#price').val('до ').attr('disabled', false);
if ($('#summa4 input:checked').val()) $('#price').val('договорная').attr('disabled', true);
if ($('#summa5 input:checked').val()) $('#price').val('даром').attr('disabled', true);

Так тоже не работает...
segazav
Никогда не думал, что это так сложно...
SerginhoLD
if( $('#summa3').prop('checked') ) 

документацию читай, там все разжевано, с примерами

_____________
"internet explorer всех правильней отображает страницы" ©
segazav
Спасибо Вам огромное!
Когда знаешь, все кажется сущим пустяком.
killer8080
segazav
выводить скрипт через echo, это говнокод!
Как вариант можно сделать так.
<script src="http://code.jquery.com/jquery-latest.min.js"></script> 
<
script>
$(function () {
$('input[name="summa"]').change(function () {
switch(this.value) {
case '1':
$('#price').val('от ').attr('disabled', false).focus();
break;
case '2':
$('#price').val('до ').attr('disabled', false).focus();
break;
case '3':
$('#price').val('').attr('disabled', false).focus();
break;
case '4':
$('#price').val('договорная').attr('disabled', true);
break;
case '5':
$('#price').val('даром').attr('disabled', true);
break;
}
}
);
});
</
script>
<
label class="text_ser"><input type="radio" name="summa" value="3">Конкретная сумма</label><br>
<
label class="text_ser"><input type="radio" name="summa" value="1">От</label><br>
<
label class="text_ser"><input type="radio" name="summa" value="2">До</label><br>
<
label class="text_ser"><input type="radio" name="summa" value="4">Договорная</label><br>
<
label class="text_ser"><input type="radio" name="summa" value="5">Даром</label><br>
<
input name="price" class="pole" type="text" spellcheck="true" id="price" size="15" maxlength="15" disabled>
<
span class="text_ser"> руб.</span>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.