简体   繁体   English

如何从选择字段中计算值?

[英]How to calculate value from select fields?

I took the example from here http://tympanus.net/codrops/2012/11/29/simple-effects-for-drop-down-lists/ , Demo 4 我从此处举了一个例子http://tympanus.net/codrops/2012/11/29/simple-effects-for-drop-down-lists/演示4

Everything works fine, however I can not figure out how to calculate the sum from select list values and to withdraw at the end of the page. 一切正常,但是我无法弄清楚如何从选择列表值中计算总和并在页面末尾提取。 I try to do it with this code but it not work ` 我试图用这段代码来做到这一点,但它不起作用

<section class="main clearfix">
                <div class="fleft">
                    <select id="cd-dropdown" class="cd-select">
                        <option value="-1" selected>Choose a weather condition</option>
                        <option value="1" class="icon-sun">Sun</option>
                        <option value="2" class="icon-cloudy">Clouds</option>
                        <option value="3" class="icon-weather">Snow</option>
                        <option value="4" class="icon-rainy">Rain</option>
                        <option value="5" class="icon-windy">Windy</option>
                    </select>
                </div>
                <input type="text" id="sum">
            </section>

    $( function() {

            $( '#cd-dropdown' ).dropdown( {
                gutter : 5,
                delay : 40,
                rotated : 'left'
            } );

        });

    </script>
    <script type="text/javascript">
        $("#cd-dropdown").change(function() {
        var total = 0;
        $.each($(".cd-select") ,function() {
        total += parseInt($(this).val());
        });
            $("#sum").val(total)});

` `

Thank you in advance ! 先感谢您 !

 $(document).ready(function () {
    $(".cd-select").change(function () {
        total = 0;
        $('.cd-select').each(function () {
            if ($(this).val() != "-1") {
                total = total + parseInt($(this).val(), 10);
            }
        });
        $('#sum').val(total);
    });
});


 <div class="fleft">
                <select id="cd-dropdown" class="cd-select">
                    <option value="-1" selected>Choose a weather condition</option>
                    <option value="1" class="icon-sun">Sun</option>
                    <option value="2" class="icon-cloudy">Clouds</option>
                    <option value="3" class="icon-weather">Snow</option>
                    <option value="4" class="icon-rainy">Rain</option>
                    <option value="5" class="icon-windy">Windy</option>
                </select>

                <select id="Select1" class="cd-select">
                    <option value="-1" selected>Choose a weather condition</option>
                    <option value="1" class="icon-sun">Sun</option>
                    <option value="2" class="icon-cloudy">Clouds</option>
                    <option value="3" class="icon-weather">Snow</option>
                    <option value="4" class="icon-rainy">Rain</option>
                    <option value="5" class="icon-windy">Windy</option>
                </select>
                <select id="Select2" class="cd-select">
                    <option value="-1" selected>Choose a weather condition</option>
                    <option value="1" class="icon-sun">Sun</option>
                    <option value="2" class="icon-cloudy">Clouds</option>
                    <option value="3" class="icon-weather">Snow</option>
                    <option value="4" class="icon-rainy">Rain</option>
                    <option value="5" class="icon-windy">Windy</option>
                </select>
            </div>
            <input type="text" id="sum">
  When any select with class 'cd-select' change the sum will be calculated and displayed on the text field 

Summation is not being made as you expect because your total variable is reset to 0 every time the event listener is fired. 不会像您期望的那样进行求和,因为每次触发事件侦听器时, total变量都将重置为0 Thus your code will work if you define that variable as global. 因此,如果将变量定义为全局变量,则代码将起作用。

Thus what you want is: 因此,您想要的是:

var total = 0;

$("#cd-dropdown").change(function() {
  $.each($(".cd-select"), function() {
    total += parseInt($(this).val());
  });
  $("#sum").val(total)
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM