我在一个页面中显示了25个产品。每个产品都包含一个表单。 因为我必须将产品拖到右边的迷你推车上。为此,我需要拖动产品的表单ID。
在jquery的帮助下,我得到了表单的id。现在我想点击该表单中的提交按钮。有没有办法在jquery的帮助下做到这一点。
我正在使用jquery find函数,但它不起作用。
这是我的jquery代码:
$("#ajaxCartUpdate").droppable({
accept:'.ui-draggable',
drop: function( ev, ui ) {
var td_obj = document.getElementsByClassName('view-test-attributes')[0].getElementsByTagName('table')[0].getElementsByTagName('td');
var form_id = td_obj[td_obj.length-1].getElementsByTagName('form')[0].id;
document.getElementById(form_id).action = '';
document.getElementById(form_id).find('.ajax-cart-submit-form-button').click();
}
});
这是我的HTML:
<div class="add-to-cart">
<form class="ajax-cart-submit-form" id="uc-product-add-to-cart-form-2-1" method="post" accept-charset="UTF-8" action="/js_ajax/">
<div>
<input type="hidden" value="1" id="edit-qty-3" name="qty">
<input type="submit" class="form-submit node-add-to-cart ajax-cart-submit-form-button ajax-cart-processed" value="Add to cart" id="edit-submit-2" name="op">
<input type="hidden" value="form-c75deef67555676e4579cd756840cea6" id="form-c75deef67555676e4579cd756840cea6" name="form_build_id">
<input type="hidden" value="dece0af3cebbdc2ad735891fc7639321" id="edit-uc-product-add-to-cart-form-2-form-token-1" name="form_token">
<input type="hidden" value="uc_product_add_to_cart_form_2" id="edit-uc-product-add-to-cart-form-2-1" name="form_id">
<input type="hidden" value="2" id="edit-product-nid-3" name="product-nid">
</div>
我认为这不是一个大问题,但不知怎的,我无法修复它。 非常感谢您的帮助。
答案 0 :(得分:1)
请尝试使用drop函数(不需要表单ID,但仍可获取):
drop: function(ev, ui) {
$('.view-test-attributes:first table:first td:last').attr('action', '').submit();
//if you still need the form id...
//var form_id = $('.view-test-attributes:first table:first td:last').attr('action', '').attr('id');
}
答案 1 :(得分:1)
为什么不呢?
$("#ajaxCartUpdate").droppable({
accept:'.ui-draggable',
drop: function( ev, ui ){
$(ui.draggable).closest('form').attr('action','').children('input[type="submit"]').click();
}
});
答案 2 :(得分:0)
而不是调用.click(),只需将其替换为.submit()。
编辑: 现在我理解了这个问题。尝试这样做:在
中JAVASCRIPT:
var productData = 'name='+ $("#idForName").val() + '&qty=' + $("#idForQty").val();
$.ajax({
type: "POST",
url: "bin/process.php",
data: productData ,
success: function(data) {
//Whatever you want to do at success
});
}
});
return false;
因此,这将是一个POST请求,您可以在服务器端处理它,就像表单提交一样。
其次,您可以从服务器端发送响应(成功/失败,具体取决于您的处理方式),您可以在上面显示的ajax call success:function(data){...}中检入回调函数。 希望这有帮助
答案 3 :(得分:0)
你也可以在css中隐藏这些输入:
visibility: hidden;
任何依赖这些输入的jQuery都应该工作,无论它是否在前端可见。