我已经做了很多关于此事的搜索,并且我已经尝试了几乎所有被认为无效的事情。
我有2个系列的单选按钮(只发布一个系列):
<div class='place PP'>
<input type='radio' name='hotel' class='hotel' value='Natura Cabana Boutique Hotel' required>
Natura Cabana Boutique Hotel (24.300 DKK)
<input type='hidden' name='hotelPrice' class='Natura Cabana Boutique Hotel' value='24.300'>
</div>
<div class='place PP'>
<input type='radio' name='hotel' class='hotel' value='Casa Maravilla' required>
Casa Maravilla (42.500 DKK)
<input type='hidden' name='hotelPrice' class='Casa Maravilla' value='42.500'>
</div>
<div class='place PP'>
<input type='radio' name='hotel' class='hotel' value='Casa Veintiuno' required>
Casa Veintiuno (31.500 DKK)
<input type='hidden' name='hotelPrice' class='Casa Veintiuno' value='31.500'>
</div>
从数据库中检索价值和价格。
我的jQuery代码显示价格如下:
$(".hotel").change(function() {
var hotel = $(this).val();
switch (hotel) {
case "Natura Cabana Boutique Hotel":
var x = new Number(24.300);
$("#price").val(x.toFixed(3) + " DKK");
break;
case "Casa Maravilla":
var x = new Number(42.500);
$("#price").val(x.toFixed(3) + " DKK");
break;
case "Casa Veintiuno":
var x = new Number(31.500);
$("#price").val(x.toFixed(3) + " DKK");
break;
// more jQuery code
} });
如何传递2个值并将我使用的固定数字替换为$ hotelPrice的值?
非常感谢。
答案 0 :(得分:1)
鉴于你已经有三种方式嵌入价格(明文,隐藏表格字段,JS开关语句),它相当重复。除了隐藏的表单字段之外,您可以抛弃所有内容,例如:
<input type='radio' name='hotel' class='hotel' value='Casa Maravilla' required>
Casa Maravilla (<span class="displayPrice">42.500</span> DKK)
^^^^^^^^^^^^^^^^^^^^^^^^^^---note new span
<input type='hidden' name='hotelPrice' class='Casa Maravilla' value='42.500'>
然后:
$(".hotel").change(function() {
price = $(this).siblings('.hotelPrice');
$(this).parent().children('.displayPrice').val(price);
});
由于每个DOM节点都“知道”它在树中的位置,您可以使用.siblings()
从隐藏的表单字段中检索酒店的价格,然后.parent().children('...')
找到新的跨度并插入检索价格。