該怎麼判斷Form Tag 是否為空白?


#1

各位前輩好,最近初學Rails,目前正在寫BMI計算機
但想加入驗證是否身高體重為空白,是的話則鎖定按鈕,否的話則解開按鈕讓其開始計算
但目前使用ERB寫判斷式的確可以,但數值輸入進去後一樣會呈現鎖定
我想應該是頁面無更新所造成,但不知該如何去解決,還是有更好的方式…

BMI 計算機

<%= form_tag ‘/bmi/result’ do %>
身高:<%= text_field_tag ‘body_height’ %> 公分

體重:<%= text_field_tag ‘body_weight’ %> 公斤

<% if @body_height == nil || body_weight == nil %>
<%= submit_tag “開始計算”, disabled: true, data: { confirm: ‘數值不能為空’} %>
<% else %>
<%= submit_tag “開始計算” %>
<% end %>

<% end %>

這是我目前傻瓜般的index.html.erb…


#2

https://jqueryvalidation.org/files/demo/

前端歸前端,後端歸後端,前後端分離即可,所以技術債請補一下

類似的外掛很多,而只有 Rails 是無法打出成品的就是

這問題和 Rails 其實無關,只要補一些前端的資訊,你應該可以輕鬆完成缺的那一塊就是了


#3

謝謝您,不好意思問了蠢問題,真的是做中學…十分感謝:grin:


#4

有後續問題都可以上來問,但…你要先找對方向就是了

and 可以的話把 code 貼上來就是,這樣我這邊也好方便 debug


#5

我參考了https://github.com/meowsus/jquery-validation-rails 來安裝使用
但會出Error,如圖片…不知道我哪裡做錯了呢?


#6

嘛…我之前有說一句話很重要哩,我再說一次

『前端歸前端,後端歸後端』新手先這樣走應該就不會走錯路,也不會鬼擋牆,之後才想辦法去 merge 之類的

簡單的來說,如果你只有 HTML 純文字編輯工具,單純編輯檔案,拋棄掉 Rails,是不是能做出你要的功能呢?

所以你應該是需要輸入類似

<script src="xxxxx">....</script>

這樣開始,就像所有 jQuery 或是前端教學一樣,而非丟在你用的 application.js 內來做 require 內唄,而你的 application.js 其實也只是幫你轉成我剛剛的寫法罷了,最多壓縮和取檔名,所以為何不自己來先呢?

先不要管美醜,先不要做最佳化,先嚐試做出東西唄,但是要用正確的方式,雖然辛苦點但至少你不會走錯路


#7

謝謝您的建議,拋棄Rails使用HTML來寫的確比較輕易近人,比較不用懂Rails省略掉的動作
只不過HTML+ERB混合真的會有點錯亂,像是為了在text_field_tag 加入required方法就試了一陣子

這是我的程式碼,分享給需要的人

<%= form_tag ‘bmi/result’, :id => ‘commentForm’ do %>
Height : <%= text_field_tag ‘body_height’, nil, class: ‘required’%> CM

Weight : <%= text_field_tag ‘body_weight’, nil, class: ‘required’%> KG

<%= submit_tag “Calculate” %>
<%= button_tag “Reset From” , type: :Reset %>
<% end %>


#8

我們 Ruby 教學有教你如何看 doc (其實就是再弄清楚 method 傳入方式)

而深入的這邊也有寫一些

弄清楚這些基本後你應該就看得懂所有的語法和輸入方式,然後去配官方的 doc 就應該看得懂哩,且不用到處亂
Google 和亂試呦

類似你說的語法的這邊

http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#method-i-text_field_tag