首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ATG dsp表单输入值

ATG dsp表单输入值
EN

Stack Overflow用户
提问于 2014-06-05 10:19:30
回答 2查看 4.8K关注 0票数 0

我正在尝试让一个表单提交,而不是重新加载整个页面。我非常有信心,因为我正在使用事件侦听器来绕过默认的表单提交逻辑,所以我的逻辑可以解决这个问题。

代码语言:javascript
复制
$("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表单如下所示

代码语言:javascript
复制
<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检查器时也是如此。

EN

回答 2

Stack Overflow用户

发布于 2014-06-06 00:44:51

每个输入域都有一个对应的隐藏表单元素,该元素由ATG在内部由DSP标记创建。您是否设置了相关的隐藏字段(如下图所示,名字文本字段有一个以_D:/atg等开头的对应隐藏字段)

隐藏值必须设置为服务器正在发送的内容,因为您在更新文本字段时不会重新加载页面。

代码语言:javascript
复制
<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>
票数 0
EN

Stack Overflow用户

发布于 2014-07-11 00:04:48

上面的代码在使用ATG dsp标记时似乎不一致。

尝试使用<dsp:input>标记而不是html <input>标记。这将确保当您提交表单时,字段被适当地映射到ATG FormHandler。

代码语言:javascript
复制
<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" />
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24050580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档