Ruby on rails 为什么Rails number_字段表单生成器接受浮点值?
我有一个rails表单生成器,带有Ruby on rails 为什么Rails number_字段表单生成器接受浮点值?,ruby-on-rails,ruby,forms,ruby-on-rails-4,Ruby On Rails,Ruby,Forms,Ruby On Rails 4,我有一个rails表单生成器,带有number\u字段,如下所示: = 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][2323
number\u字段
,如下所示:
= 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">
您仍然需要在后端验证该号码,例如:
validates :integer_value,
:presence => true,
:numericality => { :only_integer => true, :greater_than => 0, :less_than_or_equal_to => 100 }
对于输入元素,添加
min=“0”
以将值限制为整数。尽管如此,用户仍然可以在所有/大多数浏览器中输入浮点数字。您仍然需要在后端验证该数字,例如:
validates :integer_value,
:presence => true,
:numericality => { :only_integer => true, :greater_than => 0, :less_than_or_equal_to => 100 }
对于输入元素,添加
min=“0”
以将值限制为整数。尽管如此,用户仍然可以在所有/大多数浏览器中输入浮点数字。您仍然需要在后端验证该数字,例如:
validates :integer_value,
:presence => true,
:numericality => { :only_integer => true, :greater_than => 0, :less_than_or_equal_to => 100 }
对于输入元素,添加
min=“0”
以将值限制为整数。尽管如此,用户仍然可以在所有/大多数浏览器中输入浮点数字。您仍然需要在后端验证该数字,例如:
validates :integer_value,
:presence => true,
:numericality => { :only_integer => true, :greater_than => 0, :less_than_or_equal_to => 100 }
对于输入元素,添加
min=“0”
以将值限制为整数。尽管如此,用户还是可以在所有/大多数浏览器中输入浮点数。这不是由于rails造成的。input type='number'是HTML5构造,它只提供此字段中要提供的数字。它不限制用户输入非数字字符
虽然大多数浏览器都会在此字段上应用客户端验证,但当您尝试提交表单时,验证错误会显示出来。
注意:验证错误完全取决于浏览器和浏览器版本
您应该对字段应用服务器端验证,以确保不接受非数字字段
检查zwippie提供的用于服务器端验证的答案
参考链接:这不是由于rails造成的。input type='number'是HTML5构造,它只提供此字段中要提供的数字。它不限制用户输入非数字字符 虽然大多数浏览器都会在此字段上应用客户端验证,但当您尝试提交表单时,验证错误会显示出来。 注意:验证错误完全取决于浏览器和浏览器版本 您应该对字段应用服务器端验证,以确保不接受非数字字段 检查zwippie提供的用于服务器端验证的答案
参考链接:这不是由于rails造成的。input type='number'是HTML5构造,它只提供此字段中要提供的数字。它不限制用户输入非数字字符 虽然大多数浏览器都会在此字段上应用客户端验证,但当您尝试提交表单时,验证错误会显示出来。 注意:验证错误完全取决于浏览器和浏览器版本 您应该对字段应用服务器端验证,以确保不接受非数字字段 检查zwippie提供的用于服务器端验证的答案
参考链接:这不是由于rails造成的。input type='number'是HTML5构造,它只提供此字段中要提供的数字。它不限制用户输入非数字字符 虽然大多数浏览器都会在此字段上应用客户端验证,但当您尝试提交表单时,验证错误会显示出来。 注意:验证错误完全取决于浏览器和浏览器版本 您应该对字段应用服务器端验证,以确保不接受非数字字段 检查zwippie提供的用于服务器端验证的答案
参考链接:您在哪个浏览器中测试此项?取决于浏览器。我在Safari中测试此项。如果您知道约束范围,您可以将其改为选择框,并传入一个范围,例如
f.select:integer\u value,(1..500)。要想获得a
@apreading thx,您是对的。。我在chrome上测试过,它是有效的。但当我输入“2323”时,它失败了,一个点后面的数字!您在哪个浏览器中测试此项?取决于浏览器。我在Safari中测试此项。如果您知道约束范围,您可以将其改为选择框,并传入一个范围,例如f.select:integer\u value,(1..500)。若要读取thx,您是对的。。我在chrome上测试过,它是有效的。但当我输入“2323”时,它失败了,一个点后面的数字!您在哪个浏览器中测试此项?取决于浏览器。我在Safari中测试此项。如果您知道约束范围,您可以将其改为选择框,并传入一个范围,例如f.select:integer\u value,(1..500)。若要读取thx,您是对的。。我在chrome上测试过,它是有效的。但当我输入“2323”时,它失败了,一个点后面的数字!您在哪个浏览器中测试此项?取决于浏览器。我在Safari中测试此项。如果您知道约束范围,您可以将其改为选择框,并传入一个范围,例如f.select:integer\u value,(1..500)。若要读取thx,您是对的。。我在chrome上测试过,它是有效的。但当我输入“2323”时,它失败了,一个点后面的数字!回答得好。我想补充:步骤仅指定当用户单击+/-按钮时,增加/减少值的多少。它不会强制将值转换为整数。回答得好。我想补充:步骤仅指定当用户单击+/-按钮时,增加/减少值的多少。它不会强制将值转换为整数。回答得好。我想补充:步骤仅指定当用户单击+/-按钮时,增加/减少值的多少。它不会强制将值转换为整数。回答得好。我想补充:步骤仅指定当用户单击+/-按钮时,增加/减少值的多少。它不会强制将值转换为整数。