【发布时间】:2014-06-05 02:19:30
【问题描述】:
我正在尝试在不重新加载整个页面的情况下提交表单。我非常有信心我的逻辑可以解决这个问题,因为我正在使用事件侦听器来规避默认的表单提交逻辑。
$("body").on("click", '#buttonHolder', function() {
$.ajax({
type: 'POST',
data: $('#storeCart').serialize(),
dataType: "html",
url: "/inc/store/cart/cart-contents.jsp",
cache: false,
success: function(response) {
$("#formHolder").html(response);
}
});
return false;
});
我的 dsp 表单看起来像这样
<dsp:form action="" id="storeCart" formid="storeCart" method="post">
<dsp:droplet name="/atg/dynamo/droplet/IsEmpty">
<dsp:param name="value" param="element.WarrantyId"/>
<dsp:oparam name="true">
<input type="text" value='<dsp:valueof param="element.quantity" />' maxlength="3" class="inputQuantity" name='<dsp:valueof param="element.catalogRefId"/>' id='quantity-<dsp:valueof param="element.catalogRefId"/>'/>
</dsp:oparam>
<dsp:oparam name="false">
<dsp:valueof param="element.quantity" />
<input type="hidden" value='<dsp:valueof param="element.quantity" />' maxlength="3" class="inputQuantity" name='<dsp:valueof param="element.catalogRefId"/>' id='quantity-<dsp:valueof param="element.catalogRefId"/>'/>
</dsp:oparam>
</dsp:droplet>
<td id="buttonHolder"><dsp:input value="Submit" type="submit" bean="......"/></td>
</dps:form>
问题是它似乎不想在我将它们添加到前端之后更改它们。为了更清楚:
输入字段的值为1。如果我继续将其更改为4,然后检查元素,该值仍然是1,这在表单提交并生成响应时反映。所以做一个 console.log($('testID').val());在输入上给我一个 1,而不是 4(需要)。这也在请求标头中进行。
编辑:
我更新了 dsp 表单部分,以更准确地反映带有阴影隐藏字段的字段。我似乎无法让表单接受新的输入。这些值将自己声明为存储在 jsp 变量中的值,即使在将新值注入 chrome 检查器时也是如此。
【问题讨论】: