我认为这个问题已被问过几次,我也确实在Google上找到了一些问题。
但是我并不想改变整个表单行为。我只需要部分改变它。
这就是我的意思:
我有以下表格:
<form action="order.php?add=<?php echo $product_name; ?>&price=<?php echo $price; ?>&qty=1" method="post">
<input type="text" name="qty" id="qty" class="qty" size="12" />
<input type="submit" class="button2" name="buttonadd" id="button" value="Add to cart" />
</form>
我需要做的是更改表单操作中的qty=1
,使其反映<input type="text" name="qty" id="qty" class="qty" size="12" />
值!
我怎样才能做到这一点?
答案 0 :(得分:5)
将Form方法设置为'get'(现在是POST的东西)
<form action="order.php" method="get">
<input type="hidden" name="add" value="<?php echo $product_name ?>" />
<input type="hidden" name="price" value="<?php echo $price ?>" />
<input type="text" name="qty" id="qty" class="qty" size="12" />
<input type="submit" class="button2" name="buttonadd" id="button" value="Add to cart" />
</form>
你有它! :)
(我还删除了其他网址参数并将它们放入隐藏的输入中。在我看来,这是一种更清晰的方法。)
答案 1 :(得分:1)
在普通的JS中你可以做到:
window.onload = function() {
document.getElementById('qty').addEventListener('input', function(event) {
var action = this.form.getAttribute('action','');
action = action.replace(/qty=\d+/, 'qty=' + this.value);
this.form.setAttribute('action',action);
});
}
答案 2 :(得分:0)
OP请求具体内容。
$('#qty').change( function() {
var value = $(this).val();
$('#form').attr('action', 'order.php?qty=' + value);
alert($('#form').attr('action'));
});
<form id="form" action="order.php?qty=1" method="post">
<input type="text" name="qty" id="qty" class="qty" size="12" />
<input type="submit" class="button2" name="buttonadd" id="button" value="Add to cart" /></form>
我添加了id="form"
。
我不同意这种方法,你应该使用POST,但是OP要求它;
伙计们,这不会被整合到任何付款方式中。一切都是内部的..所以请回答实际的问题。
我已经编辑了表单操作,因此我们可以在JsFiddle上进行演示。无论如何,请添加PHP:)
答案 3 :(得分:0)
这是另一种完美运作的方式DEMO
$("#qty").keyup(function (){
var first=$("form").attr("action").substring(($("form").attr("action").indexOf("qty")),0)
$("form").attr("action",first+"qty="+$(this).val());
console.log($("form").attr("action"))
});