私はいくつかのjavascriptをコーディングして、 'basket'にピザを追加することを任されています。私はピザの名前、説明、サイズ、価格を取得する必要がある 'バスケットに追加'ボタンを持っています。Javascript選択したラジオボタンの値を取得
現在、私は「Add to Basket」ボタンからピザの名前と説明を取得できましたが、ユーザーが選択するラジオボタンから決定されるピザの価格とサイズを取得する必要があります。
htmlコードが私に与えられました。ここで
<td>
<table border="0" cellpadding="0">
<tbody>
<tr align="center">
<td>
<input id="size" name="Cheese" data-price="6.50" value="Small" type="radio" checked>Small
</td>
<td>
<input id="size" name="Cheese" data-price="8.50" value="Medium" type="radio">Medium
</td>
<td>
<input id="size" name="Cheese" data-price="9.99" value="Large" type="radio">Large
</td>
</tr>
<tr align="center">
<td style="padding-top: 6px">£6.50</td>
<td style="padding-top: 6px">£8.50</td>
<td style="padding-top: 6px">£9.99</td>
</tr>
</tbody>
</table>
</td>
<td>
<input id="addbasket" name="Cheese" data-description="Mozzarella cheese" value="Add to Basket" type="button" onclick="addBasket(this)">
</td>
はjavascriptのですが、私はまた、配列にNodeListオブジェクトに変換してから、私は最初の2行で行っていると思いますどのチェックされているラジオボタンを取得するためにその配列によってフィルタリングするように頼まれました。
function addBasket(button) {
var nodes = [].slice.call(document.getElementsByName(name));
var radio = nodes.filter(function(el){return el.checked;})[0];
var pizzaname = button.name;
var pizzadesc = button.getAttribute('data-description');
var pizzaprice = radio.dataset.price;
}
ラジオボタンから「データ価格」と「値」(ピザのサイズ)を取得する方法がわかりません。
私はのエラー取得しています「キャッチされない例外TypeErrorを:addBasketで未定義のプロパティ 『値』を読み込めません」pizzasize変数のため。 pizzaprice変数のエラーも "Uncaught TypeError:addBasketで未定義のプロパティ 'getAttribute'を読み取れません。私がしてきた1つのテストは、alert(pizzaprice)を使用して、smallのラジオボタンがチェックされている場合に「6.50」が表示されているかどうかを確認することですが、「未定義」と表示されます。 –
私は上に投稿したスニペットを実行してみましたか(私のコンピュータ上で動作します)、あなたとコードを比較しましたか? – gyre
私はもう一度それを入れて、期待どおりに動作しますので、ありがとうございます。私は別のピザを追加しましたが、それぞれに「Add to Basket」ボタンがあり、そのonclickに同じ「addBasket」機能が呼び出されました。これらのボタンを押すと、彼らはすべて私に最初のピザの値を与えている。クリックされたボタンに対応するピザの値を取得する方法に関するアイデアはありますか?名前と説明は期待通りに機能していますが、価格とサイズはリストの最初のピザから選択した値です。 –