2012-03-09 67 views
2

我的HTML代码是javascript函数从HTML选择menue获得选择值的总和

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

功能不加工。需要一些建议。由于

回答

3

使用selected应该可以解决你的问题。请参见下面的代码

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

由于它的工作原理... !!! – 2012-03-09 10:27:54

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

我不认为有被“选中”属性中选择元素可用。你必须使用.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

你可以做的更好的使用jQuery: -

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