【问题标题】:Adding values from a list of checkboxes to a textbox将复选框列表中的值添加到文本框
【发布时间】:2011-08-28 23:23:14
【问题描述】:

我是 jQuery 新手,所以我不熟悉它的语法。

我现在面临的问题是,我有一个包含一些值和相应复选框的下拉列表。当有人从下拉列表中选择特定值时,即从下拉列表中选中复选框时,我想将复选框的“值”添加到复选框下拉列表之外的文本框中。

我想出的代码是

$(".productr-dropdown li input[type='checkbox']").click(function(e){
        var cmd = $(this).val();
        addToTextBox(cmd);
});  

function addToTextBox(cmd){
    command = $(".z:eq(2)").find("#platform_Command").val();

    if (command.indexOf(' '+cmd+' ')>=0)
        return;
    else {
        // THIS IS THE NEXT PART WHERE I AM STUCK
        // I don't know how to add/replace the contents of 'cmd' 
        //  to the contents of 'command'(which is the value of the textbox)    
    }       
}

为了更好地解释我的问题,我将在这里写一个用例, 用户从下拉列表中选中一个复选框,例如选中的复选框的值是“abc”,我想在其中添加这个“abc”的文本框已经有一个值说“xyz hijkl defg”。应该发生的是值'abc'应该以这样的方式添加到文本框,文本框的值将是'xyz abc hijkl defg'

我的问题是我不确定我是否也在调用正确的事件。

我想到的另一种方法是, $(document).click(function(e) { $(".productr-dropdown").hide(); $(".productr-dropdown").each(["input='checkbox':checked"], function (e){ addToTextBox($(this).val()); }); });

哪个更好?

只选择下拉列表中选中的值的语法是什么?

【问题讨论】:

  • 你有复选框里面一个下拉列表?
  • @SimeVidas:是的,it's possible,在某些情况下可能很有用。 :)
  • 我们可以看看你的html吗
  • @Šime Vidas:是的,我在下拉列表中有一个复选框,基本上它是一个带有选项和相应复选框的下拉列表......它是一个很长的选项列表,所以使用下拉保存在我的情况下有很多屏幕空间 + 如果我只是在主窗体中添加一些 20 个奇怪的复选框,它看起来比说更好
  • > 请粘贴一些 HTML(条带化为必要的 :)

标签: jquery


【解决方案1】:

您提供的 HTML 会很好。 我在这里即兴发挥:

JSFIDDLE demo

我仍然不清楚你想要实现什么。

【讨论】:

  • 问题是html是动态构建的,取决于xml文件中的配置,所以在这里发布它非常困难。谢谢你的帮助,我真的很感激。 :)
【解决方案2】:

你不能这样做吗:

$('#myTxt').val( $('#mytxt').val() + cmd )?

【讨论】:

  • 主要问题是我不知道调用正确的语法,即使它会在每个复选框被点击时添加值。还有一个选项,例如在用户完成选择值并单击文档上隐藏下拉列表的任意位置后添加检查一次的每个复选框的值
【解决方案3】:

你会想要重写

command = $(".z:eq(2)").find("#platform_Command").val();

command = $(".z:eq(2)").find("#platform_Command");

if (command.indexOf(' 'cmd+' ')>=0)

if (command.val().indexOf(' 'cmd+' ')>=0)

这样您就可以轻松地使用以下来调整值

command.val(command.val() + " " + cmd);

【讨论】:

  • 我刚刚用 firebug 调试了我的代码,事件 $(".productr-dropdown li input[type='checkbox']").click(function(e){ }) 没有似乎被调用了,所以我的问题是我是否在这里调用了正确的事件?
  • 你需要问一个新问题,我已经回答了你原来的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-16
  • 1970-01-01
  • 2014-03-03
相关资源
最近更新 更多