Вызов функций 2 кнопок в той же форме PHP

Я реализовал страницу с 2 кнопками, которые вызывают две разные функции по нажатию кнопок. Но ни одна из кнопок не работает. Они просто перезагрузили одну и ту же страницу. Я положу свой код ниже.

 <form class="form-horizontal"  id="add_product_form" method="post">
<script>
    function submitForm(action)
    {
        document.getElementById('add_product_form').action = action;
        document.getElementById('add_product_form').submit();
    }
</script>



 <div class="col-sm-12">
          <input type="submit" onclick="return check_add_to_cart();" class="btn btn-danger btn-lg add-to-cart btn-block" value="Add To Cart">
<input type="submit" onclick=onclick="return check_add_to_quote();" class="btn btn-danger btn-lg add-to-quote btn-block" value="Add To quote">
        </div>

Любая помощь могла бы быть полезна. Спасибо! Функция Add_to_cart, которая упоминается над страницей.

function check_add_to_cart(){
  var quantity = jQuery('#quantity').val();
  var data = jQuery('#add_product_form').serialize();
  if(jQuery.isNumeric(quantity) && quantity > 0){
    return true
  } else if(quantity < 1) {
    jQuery('#cart_error').html('<?=display_error_str("Quantity must be greater than 0.");?>');
    return false;
  }else {
    jQuery('#cart_error').html('<?=display_error_str("Quantity must be a number.");?>');
    return false;
  }

  function check_add_to_quote(){
    var quantity = jQuery('#quantity').val();
    var data = jQuery('#add_product_form').serialize();
    if(jQuery.isNumeric(quantity) && quantity > 0){
      return true
    } else if(quantity < 1) {
      jQuery('#cart_error').html('<?=display_error_str("Quantity must be greater than 0.");?>');
      return false;
    }else {
      jQuery('#cart_error').html('<?=display_error_str("Quantity must be a number.");?>');
      return false;
    }
}

1 ответ

Вы можете сделать следующее. Изменить типsubmit в button И как у вас уже есть submitForm() метод. Вызывайте этот метод, когда хотите вернуть true.

+ Изменить

<input type="submit" onclick="return check_add_to_cart();" class="btn btn-danger btn-lg add-to-cart btn-block" value="Add To Cart">
<input type="submit" onclick=onclick="return check_add_to_quote();" class="btn btn-danger btn-lg add-to-quote btn-block" value="Add To quote">

к

<input type="button" onclick="return check_add_to_cart();" class="btn btn-danger btn-lg add-to-cart btn-block" value="Add To Cart">
<input type="button" onclick=onclick="return check_add_to_quote();" class="btn btn-danger btn-lg add-to-quote btn-block" value="Add To quote">

И измените ваши функции js на:

function check_add_to_cart(){
  var quantity = jQuery('#quantity').val();
  var data = jQuery('#add_product_form').serialize();
  if(jQuery.isNumeric(quantity) && quantity > 0){
    //return true
     submitForm(""); //you can pass action in this if you want other page
  } else if(quantity < 1) {
    jQuery('#cart_error').html('<?=display_error_str("Quantity must be greater than 0.");?>');
    return false;
  }else {
    jQuery('#cart_error').html('<?=display_error_str("Quantity must be a number.");?>');
    return false;
  }

  function check_add_to_quote(){
    var quantity = jQuery('#quantity').val();
    var data = jQuery('#add_product_form').serialize();
    if(jQuery.isNumeric(quantity) && quantity > 0){
      //return true
       submitForm(""); //you can pass action in this if you want other page
    } else if(quantity < 1) {
      jQuery('#cart_error').html('<?=display_error_str("Quantity must be greater than 0.");?>');
      return false;
    }else {
      jQuery('#cart_error').html('<?=display_error_str("Quantity must be a number.");?>');
      return false;
    }
}

И удалить submitForm() определение между HTML и добавить его в блок скрипта

Другие вопросы по тегам