【问题标题】:several select dropdown boxes to add values几个选择下拉框来添加值
【发布时间】:2012-01-14 02:18:45
【问题描述】:

如果它们具有相同的“名称”,我如何找到两个不同选择下拉列表的值并将两个值添加到一起(不是提交),然后使用 jquery 将总和值放入数组中?

编辑

为了澄清一点,我正在动态创建需要看起来像这样的列表

框 A,框 A,标题

框 B、框 B、标题

方框 C、方框 C、标题 等等……

每个列表都会有所不同,而且很少会相同。下次框可能是 D E 或 F。选中时(当前为 .onchange)所有对应的框需要添加在一起,如果值不为空,则将其推入单独的数组中...

var s=[sumOfAs, sumOfBs, sumOfCs];

我希望这会有所帮助... 后端也是PHP 谢谢!

编辑

这是将第一组值推入数组的 jquery 代码...

$("#selectionBox select").change(function(){
    s = [];
    $("#selectionBox select option:selected").each(function(){
        $("#selected_songs").text('');

        var v = $(this).val();
        if(v != ''){
            s.push(v);
        }
        if(s != ""){ 
            $('#selectionButton').show(); 
            var mw = $("#list_month_New").val();
            var dw = $("#list_day_New").val();
            var yw = $("#list_year_New").val();
            var t = $("#listTitle").val();
            if(mw == "" || dw == "" || yw == ""){
                $("#songListWarning").show();
            }else{
                $("#songListWarning").hide();
            }
        }else{
            $("#list_month_New").val();
            $("#list_day_New").val();
            $("#list_year_New").val();
            $("#listTitle").val();
            $('#selectionButton').hide();
        }
    });
    s.sort();
    jQuery.each(s, function(){
            O = "";
            O = this+"<br />";
            str = /&(.+)/.exec(O)[1];
            num = O.replace(/\-.*/, '');
            fullString = '<span style="color:black">'+num+'</span> - '+str;
            $("#selected_songs").append(fullString);
    });

我只需要弄清楚如何将另一个值添加到初始值?

【问题讨论】:

  • 两个输入在一个表单中不能有相同的名字,除非名字是一个像names[]这样的数组。
  • 我的目标是允许某人从需要添加在一起的两个框中进行选择,然后在选择时显示在屏幕上。问题是我有大约 200 个项目可供选择,每个项目都有一个同伴。当它们加在一起时,只有不为空的框会显示在屏幕上,然后一旦我交叉引用了我的选择,我就可以提交。有什么想法吗?
  • @PhpMyCoder 这不是真的。我相信 php 是这样,但其他语言不是。
  • @JamesMontagne 我不是 100% 确定。在 PHP 中,您可以获取原始查询字符串并自己查找重复项。虽然我怀疑还有其他语言可以模仿 PHP 的参数解析。
  • @PhpMyCoder 不正确。浏览器会这样做:...x=one&amp;x=two&amp;x=3...。然后由后端来解析它。 PHP 是我所知道的唯一一种让您添加 [] 的语言。

标签: php javascript jquery html


【解决方案1】:
var runningTotals = {};
$('select').each(function() {
    var $this = $(this);
    var name = $this.attr("name");
    var val = runningTotals[name];
    if (!val) {
        val = 0;
    }
    val += +($this.val());
    runningTotals[name] = val;
});

请参考这个fiddle


编辑 已编辑以更新您所做的更改编辑

【讨论】:

  • 这样,您可以将 runningTotal 放入一个数组中。请注意,就像@PhpMyCoder 指出的那样,您应该确保您的姓名格式正确;)
  • [] 是用于 php 的。他没有说明他使用的是什么后端。
  • 啊,我......不管这个解决方案应该适用于所需的情况
  • 这很接近,问题是我正在动态创建选择框列表,并且有两组多组名称很少相同。唯一相同的名称将是框 a 和框 b,但框 c 和框 d 将与前一组不同。我不知道我在这里是否有意义......
  • @JuanGonzales -- 新的解决方案应该有效;它不会将值放入数组中,但在小提琴中,有一个 for(var i in runningTotals) 循环,您可以在那里填充一个数组。
猜你喜欢
  • 1970-01-01
  • 2020-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多