javascript函数从html选择菜单中获取所选值的总和

时间:2012-03-09 10:06:37

标签: javascript html javascript-events jquery-mobile

我的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 个答案:

答案 0 :(得分:3)

使用选中应解决您的问题。见下面的代码

  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);
    }

答案 1 :(得分:0)

你的意思是:


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);
}

答案 2 :(得分:0)

我认为select元素中没有“checked”属性。您必须使用.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);

}

答案 3 :(得分:0)

你可以使用jquery做得更好: -

$("select").change(function () {
    var count = 0;
    $("select option:selected").each(function () {
        count = Number(count) + Number($(this).val());
    });
    alert(count);
}).change();