Infinion
Постоялец
- Регистрация
- 10 Фев 2009
- Сообщения
- 71
- Реакции
- 12
- Автор темы
- #1
Друзья, столкнулся с одной проблемой, помогите, пожалуйста, доработать скрипт.
Задача вроде простая, но т.к. я не силен в ява-скрипте - то для меня это проблема.
(Хочу сделать у себя на сайте что-то вроде бесплатных психологических онлайн-тестов на базе компонента RSForm Pro)
Есть готовый скрипт, который считает сумму числовых значений (=баллов) всех выбранных радио-кнопок и отдает эту сумму в скрытое поле "result":
А нужно доделать скрипт так, чтобы он сопоставил значение в поле "result" с заданным диапазоном значений и отдал в новое скрытое поле (напр. "result2") ссылку, соответствующую этому диапазону, т.е.:
Если значение из поля "result" попадает в диапазон 0-20 - то в новое поле "result2" отдается ссылка №1
Если значение из поля "result" попадает в диапазон 21-30 - то в новое поле "result2" отдается ссылка №2
Если значение из поля "result" попадает в диапазон 31-40 - то в новое поле "result2" отдается ссылка №3 и т.д.
Если возможно, то можно и без нового поля, чтобы скрипт считал значения и сопоставлял с диапазоном за один проход, и сразу отдавалась бы готовая ссылка в скрытое поле "result". Это было бы еще лучше и проще.
Подскажите, пожалуйста, как такое сделать.
Задача вроде простая, но т.к. я не силен в ява-скрипте - то для меня это проблема.
(Хочу сделать у себя на сайте что-то вроде бесплатных психологических онлайн-тестов на базе компонента RSForm Pro)
Есть готовый скрипт, который считает сумму числовых значений (=баллов) всех выбранных радио-кнопок и отдает эту сумму в скрытое поле "result":
RSForm!Pro - How to perform radio group calculations
In this article we will describe how to make a simple calculation with values from a radio group. Let suppose, for example, that we have the following components:
1. Radio group:
Name: radio1
Caption: radio1
Items: 1|Description1
2|Description2
3|Description3
2. Radio group:
Name: radio2
Caption: radio2
Items: 1|Description1
2|Description2
3|Description3
3. Hidden field
Name: result
Default Value: 0
4. Submit Button:
Name: submit
Label: submit
Additional Attributes: onclick="calculate();"
In the "Form Layout" tab, uncheck the "Auto Generate Layout" checkbox and paste the following Javascript code at the begging of the existing layout code:
In order to display the result of this calculation just the placeholder for the hidden field, in this case: {result:value}. This can be used in "Thank you" page as well as in any email configuration.
In this article we will describe how to make a simple calculation with values from a radio group. Let suppose, for example, that we have the following components:
1. Radio group:
Name: radio1
Caption: radio1
Items: 1|Description1
2|Description2
3|Description3
2. Radio group:
Name: radio2
Caption: radio2
Items: 1|Description1
2|Description2
3|Description3
3. Hidden field
Name: result
Default Value: 0
4. Submit Button:
Name: submit
Label: submit
Additional Attributes: onclick="calculate();"
In the "Form Layout" tab, uncheck the "Auto Generate Layout" checkbox and paste the following Javascript code at the begging of the existing layout code:
Код:
function calculate()
{
var op1=document.getElementsByName('form[radio1]');
var op2=document.getElementsByName('form[radio2]');
var result=document.getElementById('result');
result.value=0;
result.value=parseInt(result.value);
for(i=0;i<op1.length;i++)
if(op1.checked) result.value=parseInt(result.value)+parseInt(op1.value);
for(i=0;i<op2.length;i++)
if(op2.checked) result.value=parseInt(result.value)+parseInt(op2.value);
alert(result.value);
return false;
}
In order to display the result of this calculation just the placeholder for the hidden field, in this case: {result:value}. This can be used in "Thank you" page as well as in any email configuration.
А нужно доделать скрипт так, чтобы он сопоставил значение в поле "result" с заданным диапазоном значений и отдал в новое скрытое поле (напр. "result2") ссылку, соответствующую этому диапазону, т.е.:
Если значение из поля "result" попадает в диапазон 0-20 - то в новое поле "result2" отдается ссылка №1
Если значение из поля "result" попадает в диапазон 21-30 - то в новое поле "result2" отдается ссылка №2
Если значение из поля "result" попадает в диапазон 31-40 - то в новое поле "result2" отдается ссылка №3 и т.д.
Если возможно, то можно и без нового поля, чтобы скрипт считал значения и сопоставлял с диапазоном за один проход, и сразу отдавалась бы готовая ссылка в скрытое поле "result". Это было бы еще лучше и проще.
Подскажите, пожалуйста, как такое сделать.