Rails 3、erb(或 haml),我们如何将文本输入限制为 200 个字符,同时获得良好的用户体验?

发布于 2024-10-15 18:44:00 字数 457 浏览 5 评论 0原文

这应该非常简单,但在 Rails 中似乎并不如此……

我们需要收集用户输入的不超过 200 个字符的文本。

如果我们使用 text_field 并将 :maxlength 设置为 200,我们似乎只有两个同样丑陋的选择:(a) 使用 :size 使字段太宽,以至于它不适合典型用户的屏幕或 (b) 用户打字时必须水平滚动。从用户界面的角度来看,这两种方法都很糟糕。

当然,我们想要的是使用text_area,并让它自动将输入限制为200...但当然text_area没有限制。

我们当然不想等到他们提交数据才告诉他们“太长了”,或者更糟糕的是简单地截断他们的数据。

有什么很酷的想法吗?我们如何让输入框宽 100 个字符、高 3 行,并且不允许用户输入超过 200 个字符?

是否有一些 UI 增强框架可以处理此类 UI 问题?以仅将其应用于某些输入字段的方式添加 JavaScript 计数器是否容易?

This SHOULD be trivially easy, but doesn't seem to be in Rails...

we need to gather text input from the user of no more than 200 chars.

if we use text_field, and set :maxlength to 200, we seem to have only two equally UGLY choices: (a) make the field soooooo wide using :size that it won't fit on a typical user's screen OR (b) the user has to scroll horizontally while typing. Either approach stinks from a UI point of view.

what we WANT of course is to use text_area, and have it automatically limit the input to 200... but of course text_area has NO limit.

we certainly don't want to wait until they SUBMIT the data to tell them "that was too long" or even worse simply truncate their data.

any cool ideas? How do we have an input box say 100 chars wide and 3 lines tall that will not let the user type more than 200 characters?

Is there some UI-enhancement framework that handles this sort of UI issue? Is adding a javascript counter in such a way that we apply it ONLY to certain input fields easy?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

挥剑断情 2024-10-22 18:44:00

试试这个: = f.text_field :phone_area, :size => 4、:最大长度=> 3

Try this : = f.text_field :phone_area, :size => 4, :maxlength => 3

仅此而已 2024-10-22 18:44:00

您可以使用 javascript 限制文本框中的字符数。

例如,您可以设置 :style => "limit":"data-limit"=> 200,然后使用 jQuery 中的 css 选择器仅定位那些文本框。

类似的东西:

$(".limit").maxlength({
  // options
})

或者甚至更简洁:

var limited_textbox  = $("[data-limit]");
limited_textbox.maxlength({
  maxCharacters: limited_textbox.data("limit"),
  // options
})

使用像 http://www.stjerneman.com/ 这样的插件演示/maxlength-with-jquery
或类似的http://plugins.jquery.com/plugin-tags/character-counter

至于 UI,您可以使用 facebook 之类的文本框: http://www.9lessons.info/2010/03/facebook-like-expanding-textbox-with.html

You can limit number of characters in textbox using javascript.

You can, for example set a :style => "limit" or :"data-limit"=> 200 and then use css selectors in jQuery to target only those textboxes.

Something like:

$(".limit").maxlength({
  // options
})

Or even neater:

var limited_textbox  = $("[data-limit]");
limited_textbox.maxlength({
  maxCharacters: limited_textbox.data("limit"),
  // options
})

With a plugin like http://www.stjerneman.com/demo/maxlength-with-jquery
or similar http://plugins.jquery.com/plugin-tags/character-counter

As for UI, you could use facebook like textbox: http://www.9lessons.info/2010/03/facebook-like-expanding-textbox-with.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文