[英]Why Rails number_field form Builder accepts a floating value?
我有一个带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"}
您仍然必须验证后端中的数字,例如:
validates :integer_value,
:presence => true,
:numericality => { :only_integer => true, :greater_than => 0, :less_than_or_equal_to => 100 }
对于输入元素,添加min="0"
以将值限制为整数。 用户仍然可以在所有/大多数浏览器中输入浮点数。
这不是由于滑轨引起的。 input type ='number'是HTML5构造,它仅提供此字段中要提供的数字。 它不限制用户输入非数字字符。
尽管大多数浏览器都会在此字段上应用客户端验证,并且在您尝试提交表单验证时会显示错误。 注意:验证错误完全取决于浏览器和浏览器版本
您应该在字段上应用服务器端验证,以确保不接受非数字字段。检查zwippie提供的答案以进行服务器端验证
引用链接: http : //www.w3schools.com/html/tryit.asp? filename= tryhtml_input_number
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.