Функция JavaScript, чтобы получить сумму выбранных значений из HTML выбора меню - PullRequest
2 голосов
/ 09 марта 2012

Мой HTML-код

<div data-role="fieldcontain"style="padding:0; margin:0; padding-top:0px;">


            <div style = "margin-top:-5px">

                <select name="selectmenue1" id="sm" data-native-menu = "false" multiple = "multiple" >
                    <option value="1" selected="selected">iOS</option>
                    <option value="2">Android</option>
                    <option value="3">BlackBerry</option>
                    <option value="4">Others</option>
                </select>

            </div>
        </div>

и я использую эту функцию JavaScript, чтобы получить сумму выбранных значений

function check_sm() 
        {
        var c_value = 0;
        for (var i=0; i < document.myform.sm.length; i++)
        {
        if (document.myform.sm[i].checked)
        {
        c_value = (eval(c_value) + eval(document.myform.sm[i].value));
        }    
        }
        alert(c_value);
        }

функция не работает. нужны некоторые предложения. Спасибо

Ответы [ 4 ]

3 голосов
/ 09 марта 2012

Использование выбранного должно решить вашу проблему. Смотрите ниже код

  function check_sm() {
        var c_value = 0;
        var sm1 = document.getElementById("sm");
        for (var i = 0; i < sm1.length; i++) {
            if (sm1[i].selected)
            { c_value = (eval(c_value) + eval(sm1[i].value)); }
        } alert(c_value);
    }
0 голосов
/ 09 марта 2012

Вы можете сделать лучше, используя jquery: -

$("select").change(function () {
    var count = 0;
    $("select option:selected").each(function () {
        count = Number(count) + Number($(this).val());
    });
    alert(count);
}).change();
0 голосов
/ 09 марта 2012

Я не думаю, что в элементе select доступно свойство "selected". Вы должны использовать свойство .selected, чтобы узнать, выбран вариант или нет, что-то вроде -

function getSum(){

var sm = document.getElementById("sm");

var sum = 0;

for(var i=0;i<sm.options.length;i++)

{

if(sm.options[i].selected){

    sum+=parseInt(sm.options[i].value);

}

}

alert(sum);

}
0 голосов
/ 09 марта 2012

Вы имеете в виду:


var c_value = 0;
function check_sm() {
    var Selected = document.myform.selectmenue1.selectedIndex;
    var selectedVal = document.myform.selectmenue1.options[Selected].value;
    selectedVal = parseInt(selectedVal, 10);
    c_value +=selectedVal;
    alert(c_value);
}

...