javascript - Jquery内容 slider : Add an error class to a navigation menu that corresponds to empty section

标签 javascript jquery

我有一个被分解为 Jquery 内容 slider (即垂直选项卡)的表单。 这会将表单分成可管理的 block 以供用户填写。

目前,如果用户忘记填写字段,则会出现 error类应用于表单的该部分。但是,如果该部分不可见,用户将看不到错误样式。

我想将错误类添加到垂直选项卡导航菜单的相应部分。我怎样才能做到这一点?

用于在各部分之间翻转的Jquery代码如下:

$(".taptabs li").live('click', function() {
     $(this).parent().parent().parent().$('.pages .page').hide().eq($(this).index()).show().addClass("animated").addClass(mode).addClass("fadeInLeft");
});

( Taptabs 是导航列表的名称。表单的每个部分都有一个类 page 每个部分也位于 <section> 的 HTML 元素中)。

我认为这可以使错误消息出现在导航上:

  $(".changing-room").submit(function () {
      var isFormValid = true;
      $("input.required").each( function () {
          if ( $.trim( $(this).val() ).length === 0 ) {
              $(this).parent().addClass("error");
              var menulink = $(this).closest('section').index();
              $('.tapnav li').index(menulink).addClass('error'); 

              isFormValid = false;
          }
       });
   });

在此代码中,当输入留空时,最接近的 Section标签位于(此部分标签保存表单的特定部分)。计算该部分标签的索引,然后将其应用于相应的 LI导航菜单的。然而,它似乎不起作用,它实际上破坏了所有代码!

这是一个JS Fiddle

最佳答案

我猜有两种可能性。一是在他们完成当前选项卡上的工作之前,不要让他们进入下一个选项卡。这是下面的选项#1。正如您所说,选项 #2 是以某种方式设置选项卡的样式,以便他们可以看到他们需要返回到它。请参阅下面的#2。

#1:

在您的点击事件中(使用 .on() 而不是 .live())将包含的代码包含在以下内容中:

if(!$('.error').length){
   //All the code you have in your event now should be here - that is, there are no errors they can proceed.
} else {
  //else is optional.  Here you could do whatever you want to tell the user - "no, you can't move on because you have a validation issue.  Here is a suggestion:
  alert('You have errors! ' + someerrorvar);
}

#2

再次,如上所述,使用 .on() 事件而不是 .live(),因为 .live() 已不再存在。

我将假设有一个类指示某个选项卡是事件选项卡。由于缺乏真正的类名,我们将该类称为“tater”。如果是这样,就这样使用:

//在事件开始时,在拉动开关之前 $('.tater').addClass('不完整');

然后使用 incomplete 根据需要设置该选项卡的样式。

最终想法:

我会选择#1。用户很清楚,嘿,这里有些不对劲,我们需要修复它。确保将验证文本清楚地放在用户面前。

关于javascript - Jquery内容 slider : Add an error class to a navigation menu that corresponds to empty section,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17685381/

相关文章:

javascript - jQuery 测验元素 : Append Image After a Text Field to Denote Right or Wrong

javascript - 如何替换 html 内容中的两个类属性?

jquery - 使用jquery uidraggable,是否可以在垂直和水平方向上具有不同的滚动灵敏度?

javascript - 一个对象包含一个对象集合 - 每个对象都有一个 id 和名称,我如何将它们分开?

javascript - "missing ) after argument list error "

javascript - 内容可编辑 Div,附加 HTML 导致问题。以编程方式附加 HTML 后键入的每个文本都会添加到最后一个 HTML 标记中

javascript - 如何序列化来自非表单元素的数据并使其可从 params[ :model]

javascript - JavaScript 中的 ^1 是什么意思?

javascript - 这个叫什么名字?

java - 在打开Android Studio 3.1.3时显示sdk丢失