0

我在使用 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 脚本/插件隐藏了表单提交元素,但我无法终生弄清楚为什么会发生这种情况。

4

1 回答 1

1

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

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

于 2013-12-28T23:04:59.693 回答