我有一个表单,该表单应该提交以下选择值,但是由于某种原因,无论选择了什么,它都只会提交第一个选项值。这是Select HTML:
<select id="product-selectors" name="id" style="display:none">
<option data-price="2999" value="8643460989043">750 mL
- $29.99</option>
<option data-price="4999" value="8643461021811">1000 mL
- $49.99</option>
<option data-price="1499" value="8643461054579">250 mL
- $14.99</option>
<option data-price="1999" value="8643461087347" selected="selected">350 mL
- $19.99</option>
</select>
这是处理提交的Jquery:
initProductAddToCart: function() {
if ($('#product-add-to-cart').length > 0) {
$('#product-add-to-cart').click(function(event) {
event.preventDefault();
if ($(this).attr('disabled') != 'disabled') {
if (!window.ajax_cart) {
$(this).closest('form').submit(); //This is where the form submits
} else {
var variant_id = $('#add-to-cart-form select[name=id]:selected').val();
if (!variant_id) {
variant_id = $('#add-to-cart-form input[name=id]').val();
}
console.log(variant_id);
var quantity = $('#add-to-cart-form input[name=quantity]').val();
if (!quantity) {
quantity = 1;
}
var title = $('.product-title h2').html();
var image = $('#product-featured-image').attr('src');
ella.doAjaxAddToCart(variant_id, quantity, title, image);
}
}
return false;
});
}
}
我还要指出,这是来自Shopify液体模板,我自己没有创建任何一个。
更奇怪的是,如果我更改选择选项3次或更少,它将提交正确的值,即提交选择的选项,但是从第四个更改开始,无论选择了什么选项,它只会提交第一个选项。由于Jquery是直接从表单本身提取的,并且表单值在提交时不会更改,因此我看不到这是怎么可能的。据我所知,这是唯一接触表单的Jquery,所以我不知道是什么原因导致了这种故障。