Jquery ATG dsp表单输入值
我试图得到一个表单提交而不重新加载整个页面。我非常有信心,我有足够的逻辑来解决这个问题,因为我正在使用一个事件侦听器来绕过默认的表单提交逻辑Jquery ATG dsp表单输入值,jquery,forms,jsp,atg,Jquery,Forms,Jsp,Atg,我试图得到一个表单提交而不重新加载整个页面。我非常有信心,我有足够的逻辑来解决这个问题,因为我正在使用一个事件侦听器来绕过默认的表单提交逻辑 $("body").on("click", '#buttonHolder', function() { $.ajax({ type: 'POST', data: $('#storeCart').serialize(), dataType: "html",
$("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 inspector注入新值时也是如此 每个输入字段都有一个相应的隐藏表单元素,由ATG通过DSP标记在内部创建。您是否设置了相关的隐藏字段(如下所示,firstname文本字段有一个以_D:/atg..等开头的相应隐藏字段) 必须将隐藏值设置为服务器正在发送的内容,因为在更新文本字段时不会重新加载页面
<input id=“testid” class=“teststyle " type=“text” value="" name="/atg/something/SomeFormHandler.value.firstname” maxlength="60">
<input type="hidden" value=" " name="_D:/atg/something/SomeFormHandler.value.firstname>
上面的代码在使用ATG dsp标记时似乎不一致
尝试使用
标记而不是html
标记。这将确保在您提交表单时,字段正确映射到ATG FormHandler,例如
<dsp:input bean='YourFormHandler.value.quantity' name='<dsp:valueof param="element.catalogRefId"/>' id='quantity-<dsp:valueof param="element.catalogRefId"/>' type="hidden" iclass="inputQuantity" value='<dsp:valueof param="element.quantity" />' maxlength="3" />
是的,我有隐藏字段。无法从chrome控制台更改此输入对的值吗?我无法管理更改变量,除非我后退一步并执行正常表单提交,该提交将刷新整个页面(不需要)。如果页面重新加载,服务器将采取某些操作来填充_D(隐藏字段)以便它知道服务器端更改了哪些值,并在后台填充适当的值。如果要维护DYN_SESSION_CONF,请检查它,以便表单真正提交到后端。