Нажмите кнопку отправки в скрытой форме, используя jquery? - PullRequest
1 голос
/ 07 февраля 2012

У меня 25 товаров на странице. Каждый продукт содержит форму внутри него. Как я должен перетащить товар в мини-корзину справа. Для этого мне нужен идентификатор формы продукта, который нужно перетащить.

С помощью jquery я получаю идентификатор формы. Теперь я хочу нажать кнопку отправки в этой форме. Есть ли способ сделать это с помощью jquery.

Я использую функцию поиска jquery, но она не работает.

Вот мой код 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>

Я думаю, что это не большая проблема, но я почему-то не могу это исправить Ваша помощь очень ценится.

Ответы [ 4 ]

1 голос
/ 07 февраля 2012

Почему не это?

$("#ajaxCartUpdate").droppable({
    accept:'.ui-draggable',
    drop: function( ev, ui ){
        $(ui.draggable).closest('form').attr('action','').children('input[type="submit"]').click();
    }
});
1 голос
/ 07 февраля 2012

Попробуйте это для своей функции удаления (идентификатор формы не требуется, но все еще можно получить):

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');
}
0 голосов
/ 10 апреля 2013

Вы также можете сделать эти входы скрытыми внутри css:

visibility: hidden;

Любой jQuery, действующий на эти входы, должен работать независимо от того, виден ли он в интерфейсе или нет.

0 голосов
/ 07 февраля 2012

Вместо вызова .click () просто замените его на .submit ().

Edit: Теперь, когда я понимаю вопрос. Попробуйте сделать это: в

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) {...}, показанной выше. Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...