我有一个描述字段,我想限制为400个字符。现在我可以输入文本,计数器显示[current-count] / 400,我可以保存并且一切正常,只要我在400限制范围内。
现在我也可以输入超过400的限制,然后现在当我点击保存时我收到错误:
undefined method `each' for nil:NilClass
...加上它列出了一堆参数yadda。我知道这与我的user.rb验证有关。
所以只是作为测试,当我从 user.rb 文件中删除验证时:
validates :description, length: { maximum: 400 }
页面保存我是否低于或超过限制而没有任何错误消息。但我知道我需要验证。
所以我的目标是设置这个,所以我输入类型类型,计数器就像它一样,一旦我达到400,我就不能再打字了。
这可能吗?我想保持它这么简单,而不是试图在我的textarea旁边添加消息,比如“你已达到极限”或其他什么。我的想法是这样,当用户尝试保存并且计数器显示任何401/400时,我不会出现此错误消息问题,因为它们只能输入400以上。
这很简单吗?这就是我现在所拥有的:
在我的user.rb中:
validates :description, length: { maximum: 400 }
在我的视图文件中,我有以下JAVASCRIPT(还包括计数的回车):
<script type="text/javascript">
$(document).ready(function() {
$('#char-count').html($('#counted').val().length);
});
$('#counted').keyup(function() {
$('#char-count').html($(this).val().length);
});
$('#char-count').html($('#counted').val().replace(/\n/g, "\n\r").length);
$('#char-count').html($(this).val().replace(/\n/g, "\n\r").length)
</script>
我的FORM FIELD:
<%= f.label :description, class: "col-sm-3 control-label" %>
<%= f.text_area :description, class: "form-control", id: "counted", rows: 6 %>
<p>Current character count: <span id="char-count">0</span> / 400</p>
非常感谢任何帮助。
答案 0 :(得分:0)
是的,这是可能的。
您需要为客户端textarea验证执行此操作:textarea character limit
您还希望在user.rb中保留您的验证,以确保保存的描述不超过400个字符:
validates :description, length: { maximum: 400 }