- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想为一组复选框创建一个验证器。
让我们考虑一组 5 个复选框。要求用户检查最多 3 个,至少检查 1 个。
所以,这是我正在进行的代码:
<div data-abide-validator='checkboxes' data-abide-validator-values='1,3'>
<input type="checkbox"/>
<input type="checkbox"/>
<input type="checkbox"/>
<input type="checkbox"/>
<input type="checkbox"/>
</div>
<script>
$(document).foundation({
validators: {
checkboxes: function(el, required, parent) {
var countC = el.find(':checked').length;
alert(countC);
}
}
});
</script>
此时,我只是尝试计算已检查的输入。但似乎我什至无法触发验证器...我认为只要我能弄清楚如何触发它,我就可以设法编写我的验证程序。
确实我没有找到很多自定义验证器的例子,官方文档也没有太大帮助。
最佳答案
您的 HTML 标记并不是真正“正确”的。您应该将 data-abide-validator
属性附加到输入,而不是父 div。此外,您需要一些更好的标记,以便 abide 的默认错误显示可以工作(以及更好地使用 foundation 的网格系统来对其进行布局)。我会把你指向Abide Validation Page在 Zurb 的网站上获取表单标记的一些示例。
我冒昧地将您的标记重组为更适合基础布局的内容:
<form action="/echo/html/" method="POST" data-abide>
<div class="row">
<div class="small-12 columns checkbox-group" data-abide-validator-limit="1,3">
<label>Check some boxes</label>
<small class="error">You have checked an invalid number of boxes.</small>
<ul class="small-block-grid-3">
<li>
<label>
<input type="checkbox" data-abide-validator="checkbox_limit" value="1" /> 1
</label>
</li>
<li>
<label>
<input type="checkbox" data-abide-validator="checkbox_limit" value="2" /> 2
</label>
</li>
<li>
<label>
<input type="checkbox" data-abide-validator="checkbox_limit" value="3" /> 3
</label>
</li>
<li>
<label>
<input type="checkbox" data-abide-validator="checkbox_limit" value="4" /> 4
</label>
</li>
<li>
<label>
<input type="checkbox" data-abide-validator="checkbox_limit" value="5" /> 5
</label>
</li>
</ul>
</div>
</div>
<div class="row">
<div class="small-12 columns">
<button type="submit">Submit</button>
</div>
</div>
</form>
至于你的JS代码。这也不正确。您需要解决选项的 abide -> validators 命名空间,而不仅仅是验证器。我已经重写了您的 JS 代码,不仅可以做到这一点,还可以提供您想要的效果:
$(document).foundation({
abide: {
validators: {
checkbox_limit: function(el, required, parent) {
var group = parent.closest( '.checkbox-group' );
var limit = group.attr('data-abide-validator-limit').split(',');
var countC = group.find(':checked').length;
if( countC >= limit[0] && countC <= limit[1] ) {
group.find('small.error').hide();
//return true so abide can clear any invalid flags on this element
return true;
} else {
group.find('small.error').css({display:'block'});
//return false and let abide do its thing to make sure the form doesn't submit
return false;
}
}
}
}
});
为了在进行自定义验证时检查相邻元素,您需要有一些目标。验证函数中的 el
变量将是正在验证的输入/字段的 DOM 元素。 required
变量会告诉您该字段是否被标记为必需( bool 值)。 parent
变量将被设置为字段的“parent”。我说“parent”是因为虽然 label
标签在技术上是 input
元素的父元素,但 abide 足够聪明,可以意识到标签是字段元素结构的一部分,并且跳过它到 li
元素。
从那里,您需要一种方法来识别共同的 parent 。因此,我将 checkbox-group
类添加到我决定作为组中所有复选框的“父级”的任何元素。这不是 Foundation 或 Abide“魔法”类,而是我自己创建的用于验证功能的东西。
从那里,您可以轻松跟踪验证函数的几行以查看工作流程:找到组容器对象,解析容器的 data-abide-validator-limits
属性的限制,计算容器中已检查输入的数量,检查检查的数量是否在限制之间,显示/隐藏错误消息并返回 true/false,以便 abide 知道该字段是否经过验证。
我有 a working Fiddle of it如果您想自己检查一下;)希望这对您有所帮助,祝您在使用 Foundation 时好运!
关于forms - 基金会 5 & 遵守 : a custom validator for a set of checkboxes?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25419547/
我看过很多关于 Isabelle 的语法和证明策略的文档。然而,我对它的基础知之甚少。我有几个问题,如果有人能花时间回答,我将不胜感激: 为什么 Isabelle/HOL 不承认不终止的函数?许多其他
清除工作正常,但部分的“照片”选项卡保留在照片上。 我刚刚使用了示例代码 章节: http://foundation.zurb.com/docs/components/section.html 清理:
点击按钮并没有像我认为的那样创建一个下拉列表。有谁知道我在这里做错了什么或者为什么它可能不起作用? dropdown
如何去除 Zurb Foundation 中按钮的背景色? Button → CSS/更少: .button-arrow { background-color: none;
当您购买产品时,我正在尝试创建像 Apple 一样的产品摘要(侧边栏)。我正在使用 Magellan,它似乎会在 960 像素以下的任何宽度处中断页面。可能跟表有关系。我不确定是否会收到任何帮助或建议
我有一个顶栏菜单,但当页面加载时它位于页面中间的某个位置。当我向上滚动时,我将其设置为 sticky,这样当我滚动页面时它就会固定在顶部。我的问题是,如何使顶部栏内的某些元素仅在它已经粘在顶部时才出现
我正在尝试切换 large-8 和 large-4 这两列的位置,我希望在小屏幕上查看页面时文本位于图像下方。 列结构是这样的 div id="roofing">
@player_profile.user %> @player_profile %> 预览 我会做一些类似 Fancy.com
.grid-container的默认宽度是多少?在大屏幕上?我怎样才能改变它并使它变大?正确的做法是什么? 最佳答案 .grid-container 的默认宽度在_settings.css 文件中定义
.grid-container的默认宽度是多少?在大屏幕上?我怎样才能改变它并使它变大?正确的做法是什么? 最佳答案 .grid-container 的默认宽度在_settings.css 文件中定义
我使用的是 zurb foundation v.6,它是 flex 网格,而不是使用 float 的普通网格。我制作了一个页脚,其中有 2 个 div,我希望每个 div 都对齐到自己的末端。这是代码
谁能告诉我为什么我的网格布局中可能会有看似随机的“漏洞”?我正在使用 Zurb Foundation。 尽管这是一个基本的网格布局,但有些列会无缘无故地向右浮动。看起来好像偶尔缺少一篇文章,但如果您查
我在 Zurb Foundation 3 中创建了一个相当典型的布局。这是一行,左边是八列(包含一个 Orbit slider ),然后是右边的广告(“fluke”广告)和盒子的 4 列在广告下方,在
是否可以制作垂直子导航?在文档页面中只有水平的,我找不到如何垂直显示元素 编辑:这里是基础文档的链接:http://foundation.zurb.com/docs/components/subnav
我在我的 react 组件中使用基础 Accordion 。 因此,如果让组件呈现静态 HTML,则此代码可以工作,但是,如果我通过循环执行此操作,则 Accordion 不可单击。 UL react
我试图让显示模式从窗口底部弹出,但我就是无法让它工作,任何帮助都会很棒。 我一直在尝试使用下面的reveal js(原始代码)编辑打开函数。 谢谢 open : function (target, a
在我们的 WordPress 博客上,样式似乎是从 foundation.css 文件继承的。 特别是我们想要更改的标题字体大小。 例如,on this page ,当我们检查元素时,h2 的字体大小
我刚刚复制了示例代码,但无法正常运行。 示例:http://goo.gl/wrw2v 缩略图有不同的大小,当我点击缩略图时,大图像不会改变。 最佳答案 它不是同一个html结构。第二张图片未包裹在
我非常喜欢 Foundation 5,现在我正在尝试使用 Foundation 6 作为我的标准。但是我在响应式切换(导航)方面遇到了问题。如你所见here ,移动导航始终可见且没有内容。 这是我的
好的,这是我的代码笔 http://codepen.io/anon/pen/epbePZ Programs BackPrograms
我是一名优秀的程序员,十分优秀!