Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   html код в зависимости от выбора radio (https://javascript.ru/forum/misc/36773-html-kod-v-zavisimosti-ot-vybora-radio.html)

Findail 26.03.2013 23:54

html код в зависимости от выбора radio
 
Есть онлайн калькулятор, мне нужно что бы в зависимости от выбора пользователем опции radio в конечной форме выдавалось сообщение, типа вы выбрали "Тип R1" или другой в зависимости от выбора пользователя...
Как это реализовать?

danik.js 27.03.2013 07:42

<!DOCTYPE html>
<form id="calculator">
    <label><input type="radio" name="type" value="R1" /> R1</label>
    <label><input type="radio" name="type" value="R2" /> R2</label>
    <button type="submit">Заслать</button>

    <script>
        (function(){
            function getCheckedRadio(radios) {
                for (var i = 0; i < radios.length; i++) {
                    if (radios[i].checked) {
                        return radios[i];
                    }
                }
                return null;
            }
            var form = document.forms.calculator;
            form.onsubmit = function(){
                var type = getCheckedRadio(form.type);
                if (type) {
                    alert('Вы выбрали тип: ' + type.value);
                }
                return false;
            }
        })();
    </script>
</form>

Aetae 27.03.2013 08:28

В современных браузерах можно на чистом css:
<style>
form > span {
    display: none;
}
#R1:checked ~ .R1, #R2:checked ~ .R2 {
    display: inline;
}
</style>
<form id="calculator">
    <input type="radio" name="type" id="R1" value="R1" checked/><label for="R1"> R1</label>
    <input type="radio" name="type" id="R2" value="R2" /><label for="R2"> R2</label>
    <br />
    Вы выбрали тип: <span class="R2">R2</span><span class="R1">R1</span>
</form>

Findail 28.03.2013 21:53

Вот мой скрипт:
<SCRIPT LANGUAGE="JavaScript">
function price(form) {
var iadro = 0;
if(document.getElementById('R1').checked) {
iadro=parseFloat(form.R1.value);
}
if(document.getElementById('R4').checked) {
iadro=parseFloat(form.R4.value);
}
if(document.getElementById('R5').checked) {
iadro=parseFloat(form.R5.value);
}
if(document.getElementById('R7').checked) {
iadro=parseFloat(form.R7.value);
}

var nachalo = 0;
if(document.getElementById('Da').checked) {
nachalo=parseFloat(form.Da.value);
} 
if(document.getElementById('Net').checked) {
nachalo=parseFloat(form.Net.value);
}

var result = 0;
if(document.getElementById("result")){
result=parseFloat(form.result.value);
result*=0.001;
}

if (form.stat.checked){
var stat=parseFloat(form.stat.value);
}
else stat=0;
if (form.podpiska.checked){
var podpiska=parseFloat(form.podpiska.value);
}
else podpiska=0;

if(document.getElementById("number")){
number=parseFloat(form.number.value);
}

var total=44+(result*iadro+nachalo+stat+podpiska)*number;
document.getElementById("total_price").innerHTML=total;

}


Вот кнопка для выполнения функции
<input value="Посчитать" type="button" onclick="price(this.form)">


как сделать что бы по нажатию этой же кнопки ниже писался текст, что вы выбрали тип R1 или R4...

danik.js 28.03.2013 22:52

Findail однозначно китаец.

<!DOCTYPE html>
<form id="calculator">
    <label><input type="radio" name="type" value="R1" /> R1</label>
    <label><input type="radio" name="type" value="R2" /> R2</label>
    <button type="button" id="calculate">Посчитать</button>
    <output id="message"></output>
    <script>
        (function(){
            var texts = {
                message: 'вы выбрали тип '
            }
            function getCheckedRadio(radios) {
                for (var i = 0; i < radios.length; i++) {
                    if (radios[i].checked) {
                        return radios[i];
                    }
                }
                return null;
            }

            var form = document.forms.calculator;
            var button = document.getElementById('calculate');
            var message = document.getElementById('message');
            button.onclick = price;
            
            function price() {
                var type = getCheckedRadio(form.type).value;
                message.innerHTML = texts.message + type;
            }
        })();
    </script>
</form>


Чуть подпилить - и готово.

Findail 30.03.2013 11:49

Я новичек,много не понимаю, уже как только не крутил не могу заставить работать(

danik.js 30.03.2013 12:53

Цитата:

Сообщение от Findail
как только не крутил

Ну показывый, как ты крутил.


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