2016-07-15 3 views
0

Я, имеющий этот HTML код:Доступ к функции Jquery после щелчка на кнопке

<form class="add-to-cart-form"> 
 
     <input type="hidden" name="product-code" value="2" /> 
 
     <input type="submit" value="Add" class="button" onclick="addToCart('2');"/> 
 
    </form>

И в яваскрипте кода:

function addToCart(product_id, quantity) { 
 
     quantity = typeof(quantity) != 'undefined' ? quantity : 1; 
 

 
     $.ajax({ 
 
      url: 'test.php', 
 
      type: 'post', 
 
      data: 'product_id=' + product_id + '&quantity=' + quantity, 
 
      dataType: 'json', 
 
      success: function(json) { 
 
       alert(json.message); 
 
      } 
 
     }); 
 
    }

В html-файле anyt ime, я нажимаю на кнопку отправки, вместо того, чтобы принимать меня к функции addToCart, форма отправляется.

Я новичок в javascript и действительно не знаю причину проблемы. Пожалуйста, помогите мне решить эту проблему.

+3

изменить тип 'submit' на' button' –

+0

вряд ли увидеть причину наличия формы, так как вы не ссылаетесь ни на один из входов в нем. Но основная проблема заключается в том, что ajax не указывает браузеру не отправлять форму через браузер по умолчанию. – charlietfl

+0

добавить 'return false' в атрибут onclick –

ответ

1

Нажатие кнопки отправки имеет действие по умолчанию для отправки формы. Если это не то, что вы хотите сделать, вы должны это предотвратить.

<form class="add-to-cart-form"> 
    <input type="hidden" name="product-code" value="2" /> 
    <input type="submit" value="Add" class="button" onclick="event.preventDefault();addToCart('2');"/> 
</form> 
+1

Вместо предотвращения действия по умолчанию мы можем просто изменить тип элемента ввода на кнопку (как предлагается в одном из комментариев). –

Смежные вопросы