簡體   English   中英

為什么Rails number_field表單構建器接受浮動值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM