iCheck插件破坏了我的形式

时间:2013-12-28 22:47:40

标签: javascript jquery html forms icheck

我遇到了一个奇怪的问题,我遇到过jQuery iCheck插件。

出于某种原因,它似乎正在删除我表单上的一些元素。我创建了两个jsfiddles来演示正在发生的事情。

以下是我的表单中没有包含iCheck脚本的示例:http://jsfiddle.net/k77Dn/1/正如您所看到的,“预订培训”按钮显示在表单的底部。

现在这里是包含iCheck脚本的表单示例:http://jsfiddle.net/yU7TS/2/正如您所看到的,出于某种原因隐藏了“预订您的培训”提交按钮。

这是有问题的剧本:

$(document).ready(function(){
  $('input').each(function(){
    var self = $(this),
      label = self.next(),
      label_text = label.text();

    label.remove();
    self.iCheck({
      checkboxClass: 'icheckbox_line-green',
      radioClass: 'iradio_line-green',
      insert: '<div class="icheck_line-icon"></div>' + label_text
    });
  });
});

我唯一的结论是iCheck脚本/插件隐藏了表单提交元素,但我不能为我的生活找出原因。

1 个答案:

答案 0 :(得分:1)

删除按钮的原因是因为当前选择器为按钮之前的隐藏输入和单选按钮运行each。我假设您只想为单选按钮执行此操作。 label.remove();行在其前面的隐藏输入上运行时会删除输入按钮。

$('input').each(function(){正在为每个输入运行,而不仅仅是单选按钮。如果您想将其限制为那些,请将您的选择器更改为$('input[type="radio"]').each(function(){