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,请检查它,以便表单真正提交到后端。