这是我对表格的最后一个问题(希望如此)
我想要做的是将 var size 附加到名为 my-item-name
的隐藏输入中我尝试添加此
form.find('[name=my-item-name]').append(size.val());
但它不起作用。
将大小val附加到输入的正确方法是什么?
<form method="post" action="" class="jcart">
<fieldset>
<input type="hidden" name="jcartToken" value="13823c48f896c49403465fcce9f135ac" />
<input type="hidden" name="my-item-id" value="12" />
<input type="hidden" name="my-item-price" value="15.99" />
<input type="hidden" name="my-item-url" value="http://yahoo.com" />
<input type="hidden" name="my-item-name" value="Operation Braveheart hooded sweatshirt" />
<ul>
<li>
<select name="my-select" id="foo12">
<option value='Small'>Small</option>
<option value='Medium'>Medium</option>
<option value='Large'>Large</option>
<option value='X-Large'>X-Large</option>
</select>
</li>
<li>Price: $<span id="price12" class="price">15.99</span></li>
<li>
<label>Qty: <input type="text" name="my-item-qty" value="1" size="3" /></label>
</li>
</ul>
<input type="submit" name="my-add-button" value="add to cart" class="button" />
</fieldset>
</form>
<script type="text/javascript">
var item_prices_by_size12 = { "Small": { "Price": "15.99", "ItemId": "9-1" },"Medium": { "Price": "16.99", "ItemId": "9-2" },"Large": { "Price": "17.99", "ItemId": "9-3" },"X-Large": { "Price": "18.99", "ItemId": "9-4" }};
$(function() {
$('#foo12').change(function() {
var form = $(this).parents('form');
// Size is whatever the value the user has selected
var size = $(this).val();
// Determine the correct price and item ID based on the selected size
var price12 = item_prices_by_size12[size].Price,
itemId = item_prices_by_size12[size].ItemId;
form.find('#price12').text(price12);
form.find('[name=my-item-price]').val(price12);
// Update the item ID
form.find('[name=my-item-id]').val(itemId);
form.find('[name=my-item-name]').append(size.val());
});
});
</script>
答案 0 :(得分:5)
如果你的意思是连接:
$('[name=my-item-name]').val($('[name=my-item-name]').val()+""+size);
(读取代码大小已经是对象的val,因此无法调用size.val()
)
答案 1 :(得分:5)
追加:“将参数指定的内容插入匹配元素集中每个元素的末尾。”
你想要做的是追加我认为的价值吗?
var value = form.find('[name=my-item-name]').val();
form.find('[name=my-item-name]').val(value + size);
答案 2 :(得分:2)
这样做,
var prev= $('[name=my-item-name]').val()
$('[name=my-item-name]').val(prev+" "+size);
答案 3 :(得分:1)
用于附加值以形成输入的更好解决方案:
var attachedValue = [];
//add element to attachedValue array
attachedValue.push(size.val());
$(element).val(attachedValue);
result: 6666,5555,2222
// remove element from array;
// remove 5555 element from array
var index = attachedValue.indexOf(size.val());
if (index > -1) {
attachedValue.splice(index, 1);
}
$(element).val(attachedValue);
result 6666,2222
your form then would look like :
<input type="hidden" value="6666,2222" name="my-item-name">