1

我正在尝试将文本输入字段中的值(数量)附加到 url。我当然不能让它工作。

我所拥有的是:

<form class="formProduct" id="formProduct" action="#" method="post">
<input type="text" name="quantity" id="formProductQuantity" value="{{ product.stock.minimum }}" /> // text field with quantity
<a class="button blue opener" href="" title="{{ 'Add to cart' | t }}"><span>{{ 'Add to cart' | t }}</span></a> // submit button
</form>

<script>
 var addUrl = "http://shop.com/cart/add/123456/?quantity="; // 123456 is the product id

asset("#formProduct");

function asset(product){

    $(product + " input#formProductQuantity").val("1");
    $(product + " #formProductQuantity").keyup(function () {
         var val = $(product + " input#formProductQuantity").first().val();
    });

    $(product + " .opener").click(function() {
           var val = $(product + " input#formProductQuantity").first().val();

              // Go to page
              window.location.href = addUrl + val;

    });
 }
 </script>

所以我尝试将表格中填写的数量传递给http://shop.com/cart/add/123456/?quantity=100例如。我在这个论坛上找到了上面的代码,但我无法让它工作。

欢迎任何帮助

更新

好的,感谢这里的所有帮助,我让它工作了。任何意见或修改仍然更受欢迎。函数代码如下所示:

<script type="text/javascript">
 var addUrl = "http://shop.com/cart/add/123456/?quantity="; // 123456  is the product id

 jQuery(document).ready(function(){
  asset("#formProduct");
  });
 function asset(product){

jQuery(product + " input#formProductQuantity").val("1");
jQuery(product + " #formProductQuantity").keyup(function () {
     var val = jQuery(product + " input#formProductQuantity").first().val();
});

jQuery(product + " .opener").click(function(event) {
  event.preventDefault();
   $.get($(this).attr('href'), function(data, status) {
       var val = jQuery(product + " input#formProductQuantity").first().val();

          // Go to page
          window.location.href = addUrl + val;
  $( "#dialog" ).dialog( "open" );
          return false;

  });
 })}

4

3 回答 3

3

您正在尝试将 Javascript 添加到提交按钮,以便它将通过 Javascript 运行,但仍将提交表单,因此不会发生 window.location.href。你需要做的是添加

返回假;

到你的资产()函数的末尾:

$(product + " .opener").click(function() {
    var val = $(product + " input#formProductQuantity").first().val();

    // Go to page
    window.location.href = addUrl + val;
    return false;
});

这将阻止表单提交,允许您的 window.location.href 根据您的需要重定向。

于 2012-06-05T12:36:31.233 回答
1

你很亲密。如果您想要 #formProductQuantity 中的 val,请使用以下命令:

var val = $("#formProductQuantity").val();

var addUrl = "http://shop.com/cart/add/123456/?quantity=" + val
top.location = addUrl

更新函数中的 href:{{ 'Add to cart' | t }} // 提交按钮

在你的函数中添加这个:

$(".opener").attr("href", "http://shop.com/cart/add/123456/?quantity=" + val );

现在锚已设置并准备就绪...然后当他们单击锚时,我们走了:-) 您还可以添加 target="_blank" 以在新页面中打开 url。

于 2012-06-05T12:34:08.533 回答
1

我认为您可以使用 get 方法提交表单,它将通过 url 发送您的数据

于 2012-06-05T12:09:54.530 回答