2016-08-30 7 views
0

私はブートストラップフォームとボタンを手に入れました。ボタンをクリックすると、他のページに処理されますが、私が必要とするのは、ボタンをクリックするとモーダルを開くときです。間違いがどこにあるかが、私は、このための助けが必要になります、これは私のコード提出時にモーダルを開く

var request = false; 
 

 
jQuery(document).ready(function() { 
 
    jQuery('#sonata_add_basket_submit').on('submit', function (e) { 
 
     e.preventDefault(); 
 

 
     if (false === request) { 
 
      request = true; 
 
      var self = $(this); 
 

 
      jQuery.ajax({type: self.attr('method'), url: self.attr('action'), data: self.serialize(), 
 
       success: function (data) { 
 
        if (data) { 
 
         request = false; 
 
         jQuery(self.attr('data-target')).html(data).modal('show'); 
 
        } 
 
       } 
 
      }); 
 
     } else { 
 
      return false; 
 
     } 
 
    }); 
 
});
<form id="form_add_basket_button_{{ product.id }}" class="form-horizontal" action="{{ url('sonata_basket_add_product') }}" method="POST"{% if provider.getOption('product_add_modal') %} data-target="#add_basket_modal_{{ product.id }}"{% endif %}> 
 
       
 
    <button type="submit" class="homecart" id="sonata_add_basket_submit" data-target="#add_basket_modal_{{ product.id }}" data-toggle="modal"{% if sonata_product_stock(product) == 0 %} disabled{% endif %}> 
 
        <i class="categoryicon2"></i> {% trans from 'SonataProductBundle' %}sonata.product.btn_add{% endtrans %} 
 
       </button> 
 

 
       {{ form_rest(form) }} 
 
      </form>

である私のコードは、良いではないでしょうか?

答えて

0

フォームに、いないボタンにハンドラを提出バインドする必要があります。

jQuery('#form_add_basket_button_{{ product.id }}').on('submit', function (e) { 

は例や説明のためのAPIを参照してください:https://api.jquery.com/submit/

+0

私はこの部分のコードが、同じことを変更、それをモーダルを開こうとすると、前のように他のページに処理されます –

+0

jquery.min.js:2キャッチされないエラー:構文エラー、認識できない式:#form_add_basket_button _ {{product.id}} –

関連する問題