我有一个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。
答案 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"]