JQuery 2 个选择的乘法

发布于 2024-08-06 21:32:05 字数 1296 浏览 2 评论 0原文

伙计们,

每当两个选择下拉列表中的任何一个发生更改时,我都会尝试将其值倍增,然后显示该值。

这就是我所拥有的(当然这不起作用)-有什么想法吗?

蒂亚!

编辑编辑编辑编辑编辑编辑编辑编辑

感谢大家的帮助 - 我已经更新了 JQuery 以反映我根据您的所有帖子所做的尝试。还不走运,但我学到了很多东西:)

最后一次使用可行的解决方案进行编辑 - 谢谢大家

$(document).ready(function() {      
    $(".DropChange").change(function(){     
        var ValOne = $('#ValOne').val();
        var ValTwo = $('#ValTwo').val();
        var totalTotal = ((ValOne * 1) * (ValTwo * 1));             
        $('#Total').text(totalTotal);
    }); 
}); 
<select name="ValOne" id="ValOne" class="DropChange">
   <option value="1">1</option>
   <option value="2">2</option>
   <option value="3">3</option>
   <option value="4">4</option>
   <option value="5">5</option>
   <option value="6">6</option>
</select>

<select name="ValTwo" id="ValTwo" class="DropChange">
   <option value="1">1</option>
   <option value="2">2</option>
   <option value="3">3</option>
   <option value="4">4</option>
   <option value="5">5</option>
   <option value="6">6</option>
</select>
<span id="Total"></span>

Folks,

I'm trying to multiple the values of 2 select dropdowns whenever either of them are changed and then display that value.

This is what I have (which of course doesn't work) - Any ideas?

TIA!

EDIT EDIT EDIT EDIT EDIT EDIT

Thanks everyone for the help - I've updated the JQuery to reflect the attempts I've made based on all your posts. No luck yet, but I'm learning a lot :)

EDITED ONE LAST TIME WITH WORKING SOLUTION - Thanks all

$(document).ready(function() {      
    $(".DropChange").change(function(){     
        var ValOne = $('#ValOne').val();
        var ValTwo = $('#ValTwo').val();
        var totalTotal = ((ValOne * 1) * (ValTwo * 1));             
        $('#Total').text(totalTotal);
    }); 
}); 
<select name="ValOne" id="ValOne" class="DropChange">
   <option value="1">1</option>
   <option value="2">2</option>
   <option value="3">3</option>
   <option value="4">4</option>
   <option value="5">5</option>
   <option value="6">6</option>
</select>

<select name="ValTwo" id="ValTwo" class="DropChange">
   <option value="1">1</option>
   <option value="2">2</option>
   <option value="3">3</option>
   <option value="4">4</option>
   <option value="5">5</option>
   <option value="6">6</option>
</select>
<span id="Total"></span>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

仅此而已 2024-08-13 21:32:05

不要使用 live,而是使用 change 事件。

另外,您将结果设置到元素 #display 中,但我认为您的意思是 #Total

编辑既然你还没有弄清楚,那就开始吧...

$(function() {
  $(".DropChange").change(function(){
    var valone = $('#ValOne').val();
    var valtwo = $('#ValTwo').val();
    var total = ((valone * 1) * (valtwo * 1));
    $('#Total').text(total);
  });
});

Don't use live, use change event instead.

Also, you are setting the result into an element #display, but I think you mean #Total.

EDIT Since you still haven't figured it out, here ya go...

$(function() {
  $(".DropChange").change(function(){
    var valone = $('#ValOne').val();
    var valtwo = $('#ValTwo').val();
    var total = ((valone * 1) * (valtwo * 1));
    $('#Total').text(total);
  });
});
最偏执的依靠 2024-08-13 21:32:05

您将无法通过 jQuery 的 live 函数附加更改事件处理程序。

jQuery 的 live 功能是通过利用事件冒泡来实现的(一个处理程序附加到文档中,当事件冒泡时,jQuery 会根据引起事件的元素来确定是否应该调用您的处理程序)。 select 元素的更改事件不会冒泡。

点击事件确实会冒泡,但当值更改时不会引发。

您需要以不同的方式处理这个问题。一种选择是直接绑定到元素的更改事件(而不是使用live)。

$(".DropChange").change(function(){

$(".DropChange").live("change", function(){

一种选择是在计时器上计算并显示乘积。

You won't be able to attach a change event handler via jQuery's live function.

jQuery's live function is implemented by taking advantage of event bubbling (a handler is attached to the document, when an event bubbles up, jQuery determines if it should call your handler based on which element caused the event). The select element's change event does not bubble up.

The click event does get bubbled up, but it's not raised when the value changes.

You'll need to approach this differently. One option is to bind directly to the elements' change events (as opposed to using live).

$(".DropChange").change(function(){

instead of

$(".DropChange").live("change", function(){

Another option is to calculate and display the product on a timer.

腻橙味 2024-08-13 21:32:05
<select name="ValOne" id="ValOne" class="DropChange">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
</select>

<select name="ValTwo" id="ValTwo" class="DropChange">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
</select>
<span id="Total"></span>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
<script type="text/javascript">
    $(document).ready
    (
        function()
        {
            $(".DropChange").change
            (
                function()
                {
                    $("#Total").text($("#ValOne").val() * $("#ValTwo").val());
                }
            );
        }
    );     
</script>
<select name="ValOne" id="ValOne" class="DropChange">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
</select>

<select name="ValTwo" id="ValTwo" class="DropChange">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
</select>
<span id="Total"></span>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
<script type="text/javascript">
    $(document).ready
    (
        function()
        {
            $(".DropChange").change
            (
                function()
                {
                    $("#Total").text($("#ValOne").val() * $("#ValTwo").val());
                }
            );
        }
    );     
</script>
孤独陪着我 2024-08-13 21:32:05
$(document).ready(function(){
    $('.DropChange').change(function(e){
        var total = 0;
        $('.DropChange').each(function(){
            var n = +$(this).val();
            if(total){
                total *= n;
            } else{
                total = n;
            }
        });
        $('#Total').text(total);
    });
});

$(document).ready(function(){
    $('.DropChange').change(function(e){
        var total = 0;
        $('.DropChange').each(function(){
            var n = +$(this).val();
            if(total){
                total *= n;
            } else{
                total = n;
            }
        });
        $('#Total').text(total);
    });
});

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文