【问题标题】:Programatically select portion inside an text input field以编程方式选择文本输入字段内的部分
【发布时间】:2011-04-14 18:35:20
【问题描述】:

我有一个共同的<input type="text" id="foo" />

我可以通过$("#foo").select();点击选择所有文本

该字段确实已经包含一个数字(例如25.40

如何只选择25 部分?

【问题讨论】:

  • 这个问题很模糊,会不会一直是25.40?您是否要四舍五入使 25.40 变为 25?您是否只想要框中输入的前两个字符?这可能意味着很多答案。
  • @thedixon:我认为很清楚:不要选择整个文本,而应该只选择点之前的部分。当然,如果我们知道为什么的原因,那么可能还有另一个更简单的解决方案。
  • 如果是这样,答案如下。
  • 我认为 Fabio 需要按照@thedixon 的建议提供更多细节。它是一种输入文本类型,可以是用户输入的任何内容

标签: javascript jquery select validation


【解决方案1】:

对于跨浏览器支持,您可以使用我的 Rangy Inputs jQuery 插件,它也适用于 textareas:http://code.google.com/p/rangyinputs/

有了它,你可以选择小数点前的所有内容,如下所示:

var $foo = $("#foo");
$foo.focus();
$foo.setSelection(0, $foo.val().indexOf("."));

jsFiddle 示例:http://jsfiddle.net/3XkJE/2/

【讨论】:

  • 仅供参考:您可以将资源添加到 jsfiddle,这会使 JavaScript 代码区域更加干净:jsfiddle.net/fkling/3XkJE/3 :)
  • @Felix:谢谢。我确实知道这一点,它确实适用于此。对于我的其他一些项目,SVN 中的文件在直接链接时无法工作,因为它们具有被构建脚本删除的日志调用。
【解决方案2】:
var split = $("#foo").val().split(".");
var result = split[0];

【讨论】:

  • $("#foo").select() 将返回 $("#foo"),而不是选定的文本。无论如何,这永远不会只选择文本的一部分。这不是关于获取值,而是关于选择/标记文本。
  • 我继续他发布的原始脚本 - 我猜他应该使用 val()。
  • 您没有理解问题所在。阅读.select() 在做什么:api.jquery.com/select
猜你喜欢
  • 2010-10-13
  • 2011-03-01
  • 2011-03-17
  • 1970-01-01
  • 1970-01-01
  • 2013-06-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多