1

エリック・マーティンのシンプルなモーダルでフォームを送信しようとしています。フォームがテキストフィールドに入力した数量を送信しないことを除いて、すべて正常に機能します。誰かがこれに対するきちんとした解決策を持っていますか?

以下の投稿で尋ねられたように、より良いビューのために私のJqueryが更新されました

 <script type="text/javascript">
 function image_id_convert(image_id)
 {
image_id = parseInt(image_id, 10).toString(35);
while (image_id.length < 6)
{
  image_id = 'z' + image_id;
}
return image_id;
}

$('.opener').click(function (event) {

  var url = $(this).attr("href")+'/?format=json';

  $('#formVariants').modal({
    onOpen: function (dialog) {
            dialog.overlay.fadeIn('fast', function () {
                dialog.container.slideDown('fast', function () {
                    dialog.data.fadeIn('fast');
                });
            });
        },
    onShow:function(dialog) {      

      $.getJSON(url, function(data) {           

        var contentHtml = '';

        $.each(data.product, function(index, product){

          var image = 'http://cdn.webshopapp.com/i/' + image_id_convert(data.product.image) + '/160x120x2/image.jpg';

          contentHtml =
            '<img src="' + image + '"/>' +
            '<div class="variantsContainer">' +
            '<div class="pop_headerContainer">' +  
            '<div class="pop_title"><h3>' + data.product.fulltitle + '</h3></div>' +
            '<div class="pop_code">Artikelcode:' + data.product.code + '</div>' +
            '<div class="pop_price">€' + data.product.price.price + '</div>' +
            '</div>';
        });

         $.each(data.product.variants, function(index, variant){     

          contentHtml = contentHtml +
            '<form class="formProduct" id="formProduct">' +
            '<div class="variants">' +
            '<div class="pop_variantTitle"><label>' + variant.title + '</label></div>' +
            '<div class="pop_variantQuantity"><label">{{ 'Quantity' | t }}: <input type="text" name="quantity" id="formProductQuantity" value="50" /></label></div>' +
            '<div class="pop_variantAdd"><input type="submit" id="submit" class="button green" value="{{ 'Add to cart' | t }}"/></div>' +
            '</form>';

          contentHtml = contentHtml +
            '</div>';       
           // action="{{ 'cart/add/' | url }}' + variant.id + '" method="post"
           /* quantity = $('#formProductQuantity').val();
           $('#formProductQuantity').val(quantity);*/

         });     

        $('.formProductContent').html(contentHtml);            
      });  
    }

  });
  return false
})

</script>
4

2 に答える 2

4

2 つの場所で数量を送信しようとしています - URL を確認してください (フォーム アクション)。URL から数量を削除するか、両方が必要な場合はどちらかの名前を変更してください。

于 2012-08-03T13:16:47.340 に答える
0

いつでも試すことができます

var value = $("input[name=quantity]").val();

または、var 値をクリック関数に移動してみてください

$(".submit").click(function(e){
    e.preventDefault();

    var value = $("input[name=quantity]").val();
    $('form#formProduct').submit()
});
于 2012-08-03T13:27:19.513 に答える