ここでNoobはアマチュアのように聞こえることをお詫びします。私は電子商取引サイトをコーディングしようとしています。顧客は、サイトにアップロードされた画像からポスターを注文し、元の画像の寸法に応じて希望するポスターのサイズ(h x w)を選択します。新しい注文を作成するためのフォームがあり、フィールドの1つはポスターサイズオプションの選択フィールドです。彼らがサイズを選択すると、フォームの別のフィールドで価格を自動的に更新し、フォームを送信する前に価格を知りたいと思う。Rails:フォームの選択フィールドでそれぞれの選択肢を別のフォームフィールドに入力してください
私が試みてきた戦略は、selectフィールドの選択肢にjQuery onclickコードを追加することです。ここでは(単に簡潔にするために選択フィールドで最初の選択肢を示す)フォームのために私が持っているものです。
<%= form_for(@order) do |f| %>
<div id="order_form">
<div class="field">
<%= f.label(:size) %><br>
<%= f.select(:size, [link_to("#{@image.dimensions['width']/120} * #{@image.dimensions['height']/120}", '#', :onclick => "showPrice('#{@image.dimensions['width']/120} * #{@image.dimensions['height']/120}'); return true;"), ... ]) %>
</div>
<div class="field">
<%= f.label(:price) %><br>
<%= f.text_field :price, :id => 'price' %>
</div>
</div>
そして資産> JavaScriptの>私のjQueryのコードをapplication.jsです:
function showPrice(size) {
$("#price").html("$" + size * 0.08);
}
それはです私がやろうとしていることがうまくいかないのか、それとも間違っているのか分かりません。
ご協力いただきありがとうございます。
こんにちはとスタックオーバーフローを歓迎します。 javascriptコンソールにエラーが表示されていませんか?それは私たちが間違っていることを絞り込むのに役立ちます...選択肢をダミー値だけにハードコーディングして、あなたのhtml/jsが壊れているかどうかを判断しましたか? –
私は何の誤りもありません。ブラウザではサイズ選択フィールドに19 * 29 "> 19 * 29(寸法2280 x 3480の画像の場合)と価格フィールドに何も表示されず、価格フィールドに19 * 29と$ 44.08が表示されます問題は、選択肢の選択肢にjQueryを挿入しようとしている... –
文字どおり: '19 * 29"> 19 * 29'?何らかの理由でテキストと値の間で混乱しているように見えます。タイプミスがあったり、不適切に終了した文字列をどこかに似たようなものがある場合に起こります。だからこそ、ダミー値テストはあなたを助けることができます...ダミー値がハードコードされている場合は動作しますが、オプションを動的にレンダリングしようとするとうまくいかない場合は、それらが動的にレンダリングされるのではなく、オプションに作用するロジックではなく、レンダリングされます。 :)(デバッグテクニック!) –