【问题标题】:how to get all checked checkboxes from a dynamically generated form in the order如何按顺序从动态生成的表单中获取所有选中的复选框
【发布时间】:2012-10-15 02:56:46
【问题描述】:

我编写了一个代码,它检索表单中元素的所有值,它使用单选按钮、文本框、下拉列表、文本区域。但是现在我想添加复选框,问题在于复选框我们可以有多个值特定名称,因此需要按表单中出现的顺序获取复选框值

这是获取值的代码:

var elements="";
                var $this = jQuery(this);
                $this.parents(".detailTable").find(":input").each(function(index, elm){
                if((jQuery(this).attr("type")=="button") ||(jQuery(this).attr("type")=="hidden"))
                {
                }else if((jQuery(this).attr("type")=="radio")){
                    if(jQuery(this).attr("checked")){
                    elements=elements + (jQuery(this).val());
                    elements=elements + "|";
            //      alert(jQuery(this).val())
                    }
                }else if((jQuery(this).attr("type")=="checkbox")){
                    if(jQuery(this).attr("checked")){
                    elements=elements + (jQuery(this).val());
                    elements=elements + "|";
                }
                }
                else{
                    elements=elements + (jQuery(this).val());
                    elements=elements + "|";
                //  alert(jQuery(this).val());
                }
                });

我想要一个复选框组的所有值以逗号分隔(表单可以有多个复选框),而元素之间的值是'|'分开。

你能帮我解决这个问题吗

【问题讨论】:

  • 你见过 jQuery 的 .serialize() (api.jquery.com/serialize) 方法吗?我将从那里开始,然后从返回的数据对象创建您的编码字符串。
  • @MattStone 我不想隐藏并提交元素,所以我不能使用序列化元素

标签: javascript jquery html forms


【解决方案1】:

尝试使用.map() 方法..

var checkedBoxes= $('input[type=checkbox]:checked').map(function() {
                     return this.value ;
                  }).get().join('|');

【讨论】:

  • 但我希望元素按顺序排列,因为它们必须按照它们在表单中出现的顺序存储在 D/B 中
  • 你可以使用 $(":input").serializeArray();
  • 但这并不能确保您只发送已检查的项目
  • 是的,对于单选按钮和复选框,我只希望将选中的值存储在 db 中。如果是复选框,值将以逗号分隔
  • 你的意思是“这不会确保你只发送检查项目”
猜你喜欢
  • 1970-01-01
  • 2019-06-08
  • 2012-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-18
相关资源
最近更新 更多