【问题标题】:Getting values of hidden checkboxes jQuery获取隐藏复选框jQuery的值
【发布时间】:2015-12-12 07:44:45
【问题描述】:

我有一个带有多个复选框的表单。有些值需要默认为真,所以我将它们隐藏为:

 <input type=checkbox name="<%= _key %>" checked="checked" style="display:none" />

要检索我正在执行的所有值:

 var form_data = {}   
 $('form').find("input").each(function(i, e) { 
        if (e.checked)  
           form_data[e.name] = e.value; 
    });

但是隐藏的输入字段没有出现。我究竟做错了什么?我该如何纠正?

我也在使用 underscore.js,但我认为这个问题与它无关。

【问题讨论】:

  • 我找到了这个解决方案:stackoverflow.com/questions/13870463/… 但是我认为这不是解决问题的正确方法!
  • 为什么不用隐藏字段来代替?
  • @ThinkDifferent 是的,可以做到,但问题是为什么这不起作用?
  • @singhshivam 它应该可以工作,检查这个jsfiddle.net/jcvC2/1
  • 试试e.prop('checked')

标签: javascript jquery html


【解决方案1】:

为简单起见,您可以这样做:

$(function(){ // put the code in doc ready
   var form_data = {}   
   $('form').find(":checkbox:checked").each(function(i, e) { 
       form_data[e.name] = e.value; 
   });
});

所以在这里我建议您只循环检查已检查的元素并将名称和值放入 javascript 对象中。


但如果您只对隐藏的选中复选框感兴趣$('form').find(":checkbox:checked:hidden")

【讨论】:

  • 您的代码似乎在 jsfiddle 上运行良好,但我不知道为什么它不能在我的应用上运行
  • 好的,用$(function(){...put the code }); doc ready 块包装代码;
【解决方案2】:

我认为你应该这样做 jQuery 方式。

$('form').find("input").each(function(i, e) {
var jEl = $(this);
if(jEl.is(":checked"))
    alert(1);
    alert(jEl.attr("name"));
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-01
    • 1970-01-01
    相关资源
    最近更新 更多