我有一个带有number_field
的rails表单构建器,如下所示:
= f.number_field :integer_value, :step => 1, :class => 'form', :value => obj.value
它生成html为:
<input class="form" id="people_attributes_232322900500_integer_value" name="people[people_attributes][232322900500][integer_value]" placeholder="" step="1" type="number">
但它仍接受浮动值。
我在服务器端获取的参数是{........, "integer_value"=>"12123.323"}
答案 0 :(得分:2)
您仍需要验证后端中的号码,例如:
validates :integer_value,
:presence => true,
:numericality => { :only_integer => true, :greater_than => 0, :less_than_or_equal_to => 100 }
对于input元素,添加min="0"
以将值限制为整数。但是,用户可以在所有/大多数浏览器中输入浮点数。
答案 1 :(得分:1)
这不是因为铁轨。输入类型=&#39;数字&#39;是一个HTML5结构,它只提供此字段中提供的数字。它不会限制用户输入非数字字符。
虽然大多数浏览器会在此字段上应用客户端验证,但当您尝试提交表单验证时,将显示错误。 注意:验证错误完全取决于浏览器和浏览器版本
您应该在字段上应用服务器端验证,以确保不接受非数字字段 检查zwippie提供的服务器端验证答案
参考链接:http://www.w3schools.com/html/tryit.asp?filename=tryhtml_input_number