输入'小于,大于,等于'HTML表单中的软件版本?

时间:2014-09-18 16:33:24

标签: jquery html ruby-on-rails html5 range

我有一个HTML表单,允许输入软件版本(例如1.1.1,1.0等)。特别是WordPress软件版本。目前,每个版本都有自己的文本输入框。当需要很多版本时,HTML表单看起来很混乱,并且需要花费大量时间来输入它们。

我正在寻找一种解决方案,允许我使用大于(>),小于(<)和等于(=)的逻辑来输入WordPress软件版本。

例如:

我有这些软件版本:1.0,1.2,1.3,2.0

  • 用户输入:“< 1.2” - 表单将提交:“1.0”

  • 用户输入:“< = 1.3” - 表格将提交:“1.0,1.2,1.3”

  • 用户输入:“> 1.3” - 表单将提交:“2.0”

HTML5's Range输入似乎不够,因为它只允许1个值。

Jquery UI's Range Slider可能是一个合适的选择。

是否有针对此类软件版本输入的设计?

如果重要的话,我在后端使用Rails。

1 个答案:

答案 0 :(得分:1)

您可以使用Rubygems版本支持。这将在后端工作,而不是客户端,但你可以发出一个ajax请求来解析并返回满意的版本。

首先,为要匹配用户输入要求的每个版本创建一个Gem :: Version数组:

require 'rubygems'
versions = %w(1.0 1.2 1.3 2.0).map { |s| Gem::Version.new(s) }
requirement = Gem::Requirement.new("<= 1.3")

现在您可以找到满足要求的所有版本:

satisfied_versions = versions.select { |v| req.satisfied_by?(v) }
# => [#<Gem::Version "1.3">, #<Gem::Version "1.2">, #<Gem::Version "1.0">] 

如果您只想要版本字符串:

satisfied_versions.map { |v| v.to_s }
# => ["1.3", "1.2", "1.0"]