Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Автовыбор radio при условии (https://javascript.ru/forum/events/44435-avtovybor-radio-pri-uslovii.html)

Elphet 19.01.2014 17:46

Автовыбор radio при условии
 
Доброго времени суток, форумчане. Возникла трудность.

Имеем страницу с кодом:

<form method="POST" name="wordcount">
<script language="JavaScript">
function countit(){
var formcontent=document.wordcount.wordcount2.value
formcontent=formcontent.split(" ")
document.wordcount.wordcount3.value=formcontent.length
}
</script>
 <table border="0" cellspacing="0" cellpadding="0">
 <tbody> <tr> <td width="100%">
 <textarea rows="10" name="wordcount2" cols="80" wrap="virtual"></textarea>
 </td> </tr>
 <tr><td width="100%">
 <div align="center">
 <p>
 <input type="button" value="Подсчитать количество слов" onclick="countit()">
 <input type="text" name="wordcount3" size="40">
 </p> </div> </td> </tr> </tbody> </table></form>



<table width="100%" border="0" celspacing="0" celpadding="2" id="delivery-list" class="methods-list">
<tbody><tr valign="top">
<th><input type="radio" name="delivery" value="3" class="delivery-item" id="del-type-3" onclick="shEvOrd('delivery',this,1)"></th>
<td><label class="label" for="del-type-3">от 0 до 60 слов</label>Коэффициент 1</td>
</tr>
					
<tr valign="top">
<th><input type="radio" name="delivery" value="4" class="delivery-item" id="del-type-4" onclick="shEvOrd('delivery',this,1)" checked=""></th>
<td><label class="label" for="del-type-4">от 61 до 75 слов</label>коэф. 1,5</td>
</tr></tbody></table>


Первая форма считает количество слов и выводит ее в инпут.
Вторая форма radio отвечает за выбор конкретного коэффициента. Дальше движок сам делает расчеты по всей видимости по php.

Не могу придумать, как сделать так чтобы:
1. Форма выводила количество слов не в инпут а в виде текста рядом с кнопкой.
2. При нажатии на кнопку "Подсчитать количество слов" автоматом выбирается нужный пункт radio.
То есть задать условия (если количество слов от 0 до 60 - то выбирается кнопка радио 1, от 61 до 75 кнопка 2 и тд. остальные условия по аналогии смогу задать сам).
Вообще идеально, если будет все без кнопки подсчета. Ввел текст - сразу известно количество и сразу выбрано нужное radio.

Нюансы: не могу изменить то что зашито в движок:
сам код выбора radio, то есть как есть radio так и будет и изменить что-либо нельзя.
Обойти отправку без выбора радио. В этом плане тоже все закрыто.


Вот такая вот непростая у меня задача по обходу неполноценного нашего движка... Выручайте.

Elphet 19.01.2014 18:32

Перввую задачу решил. Теперь код выглядит так:
<textarea name="fld7"></textarea>
 <span id="counter">0</span>
    <script type="text/javascript">
    var textarea = document.getElementsByName("fld7")[0];
    var counter = document.getElementById("counter");
    textarea.onkeyup = function() {
        counter.innerHTML = this.value.split(/ +(?:\S)/).length;
    }
</script>

<table width="100%" border="0" celspacing="0" celpadding="2" id="delivery-list" class="methods-list">
<tbody><tr valign="top">
<th><input type="radio" name="delivery" value="3" class="delivery-item" id="del-type-3" onclick="shEvOrd('delivery',this,1)"></th>
<td><label class="label" for="del-type-3">от 0 до 60 слов</label>Коэффициент 1</td>
</tr>
                     
<tr valign="top">
<th><input type="radio" name="delivery" value="4" class="delivery-item" id="del-type-4" onclick="shEvOrd('delivery',this,1)" checked=""></th>
<td><label class="label" for="del-type-4">от 61 до 75 слов</label>коэф. 1,5</td>
</tr></tbody></table>



Теперь остается вторая цель:

2. Сделать так чтобы автоматом в зависимости от количества слов - выбирался нужный пункт radio.
Если количество слов от 0 до 60 - то выбирается кнопка радио 1, от 61 до 75 кнопка 2 и тд. остальные условия по аналогии смогу задать сам.

kostyanet 20.01.2014 07:51

Опишите условия задачи как таковые.

Пока что для выбора параметра по диапазону применяется if else

if(n>100)
v= 1
else if(n>60)
v=2
else if (n>30)
v=3

etc

Elphet 20.01.2014 22:09

Цитата:

Сообщение от kostyanet (Сообщение 293032)
Опишите условия задачи как таковые.

Пока что для выбора параметра по диапазону применяется if else

if(n>100)
v= 1
else if(n>60)
v=2
else if (n>30)
v=3

etc

Это совсем не то... ((

Задача: Нужен код автовыбора radio по условию, грубо:

функция
if (число в id counter > 60) {автовыбор пункта input radio первый}.
if (число в id counter > 74) {автовыбор пункта input radio второй}.

Запуск функции

Возможно добавочный синтаксис или функция которая выбирает radio

Elphet 21.01.2014 00:06

Я одновременно люблю и ненавижу этот язык))))

Задал вопрос. Сам с собой пообщался. Сам решил задачу)))
спасибо))) Вопрос закрыт

kostyanet 21.01.2014 13:10

Так и было написано. На выходе из иф-елс берете v и профтыкает куда надо.

Elphet 21.01.2014 13:54

даа? щас попробую =)


Часовой пояс GMT +3, время: 14:08.