Javascript 使用基金会来验证文本字段的长度吗?
我在Rails应用程序中使用基础,我正在寻找一种方法来验证窗体中文本字段的长度:当文本字段包含太多字符时,我想显示一个错误(但不是空的)。 我尝试使用基金会的“遵守”并创建自定义命名模式,如中所述Javascript 使用基金会来验证文本字段的长度吗?,javascript,ruby-on-rails,zurb-foundation,Javascript,Ruby On Rails,Zurb Foundation,我在Rails应用程序中使用基础,我正在寻找一种方法来验证窗体中文本字段的长度:当文本字段包含太多字符时,我想显示一个错误(但不是空的)。 我尝试使用基金会的“遵守”并创建自定义命名模式,如中所述 这里是我的代码>应用程序.js文件,包括基础初始化时的自定义模式: $(function(){ $(document) .foundation() .foundation('abide', { patterns: { short_field: /^.{
这里是我的代码>应用程序.js<代码>文件,包括基础初始化时的自定义模式:
$(function(){
$(document)
.foundation()
.foundation('abide', {
patterns: {
short_field: /^.{,40}$/,
long_field: /^.{,72}$/
}
});
});
以下是我在视图中的表单代码:
<form data-abide>
<div class="long-name-field">
<input type="text" pattern="long_field" placeholder="Long Field">
<small class="error">Too long.</small>
</div>
<div class="short-name-field">
<input type="text" pattern="short_field" placeholder="Short Field">
<small class="error">Too long.</small>
</div>
</form>
太长了。
太长了。
问题是,当我加载表单页面时,所有字段都会显示错误消息,无论它们是空的、在字符限制下填充的还是超过字符限制的
有没有人成功地使用bedide做过类似的事情(或者知道一种更好的方法,即不使用自定义命名模式)
干杯。我终于成功了 问题是,
/^.{,40}$/
不是有效的regexp语法,必须显式使用/^.{0,40}$/
我把它与
/.{5,}/
语法弄错了,你可以用它来施加一个较低的限制。我无法让javascript在我的Rails 4应用程序中正常工作,所以我直接添加了regex作为一个属性,如下所示:
<%= text_area_tag 'answer', @current_answer,
:placeholder => 'required', :required => '', :pattern => '^(.){0,1000}$' %>
'required',:required=>',:pattern=>'^(..{01000}$'%%>
对于仅验证最小长度,我使用:
<%= text_area_tag 'answer', @current_answer,
:placeholder => 'required', :required => '', :pattern => '^(.){100,}$' %>
'required',:required=>',:pattern=>'^(..{100,}$'%%>
这不适用于带有回车符的文本区域