2013-04-27 2 views
0

웹에서 찾을 수있는 것 이상으로 jQuery가 필요하지 않습니다. select/option에서 사용자 정의 html 속성을 "살"계산하려고합니다.val() 대신 사용자 정의 속성

잘 작동하는이 스크립트를 사용했지만 불행히도 PHP에서 데이터를 보내려면 값의 데이터가 필요하고 사용자 정의 데이터 특성을 사용해야합니다. val() 대신 option에 접근하는 방법을 모른다. $ ksm, $ data ('ksm') 및 다른 이상한 아이디어를 시도했지만 작동하지 않는다.

JS :

<script type='text/javascript'> 
    //<![CDATA[ 
    $(window).load(function(){ 
    $("[id$=nr]").change(function() { 
     var total = 0;  
     $('.zawodnik select').each(function() { 
      total = total + Number($(this).val()); 
     }); 
     $('div#sumaksm').html(total); 
    }); 
    }); 
    //]]> 
</script> 

HTML (zaw7에 zaw1 같은 exactle입니다) :

<tr><td class="zawodnik"> 
<select name="zaw3" id="3nr"> 
     <option value="1" class="rider" data-ksm="10.40">Nicki Pedersen (10.40)</option> 
     <option value="2" class="rider" data-ksm="9.58">Niels Kristian Iversen (9.58)</option> 
     <option value="3" class="rider" data-ksm="9.28">Chris Holder (9.28)</option> 
     <option value="4" class="rider" data-ksm="9.27">Greg Hancock (9.27)</option> 
</select> 
</td></tr> 
Your KSM: <div id="sumaksm">-select riders-</div> 

그리고 나는 불쌍한 내 영어 :

+0

에서 .data() 방법을

$(window).load(function(){ $("[id$=nr]").change(function() { var total = 0; $('.zawodnik select').each(function() { var option = this.options[ this.selectedIndex ]; total = total + parseFloat($(option).data('ksm')); }); $('div#sumaksm').html(total); }); }); 

데모를 사용; 예 : $ (this) .data ('ksm'); –

+0

'total = total + Number ($ (this) .data ('ksm'));'? – Jashwant

답변

0

미안 해요 당신은 '사용할 수 있습니다 .attr() '

0

나는 제안 할 것이다 :

$('select').change(function(){ 
    var self = $(this); 
    $('#sumaksm').text(self.find('option:selected').data('ksm')); 
}); 

JS Fiddle demo.

은 비록 당신이 정말로 을 할 경우 (어떤 이유로)를 data-ksm 때마다에게 select 속성 변경 합계를 :

$('select').change(function(){ 
    var self = $(this), 
     total = 0; 
    self.find('option').each(function(){ 
     total += parseFloat($(this).data('ksm')); 
    }); 
    $('#sumaksm').text(total); 
}); 

JS Fiddle demo합니다. 개비의 힌트에 따라

(아래 코멘트), 난 좋을 것 :

$('[id$=nr]').change(function(){ 
    var total = 0; 
    $('[id$=nr]').each(function(){ 
     total += parseFloat($(this).find('option:selected').data('ksm')); 
    }); 
    $('#sumaksm').text(total); 
}); 

JS Fiddle demo합니다.

참고 :

관련 문제