dojo TabContainer不会从失败的Submit中返回选定的TabPanel

时间:2014-11-03 17:55:41

标签: javascript dojo xpages tabcontainer

我有一个包含几个tabPanel的djTabContainer: TabContainer Data Entry

正常工作,当我单击提交按钮时,我在QuerySave中进行一些处理并返回false我得到此视图: Return from Failed QuerySave

如果我单击“客户”选项卡,它会正确显示客户信息,如果我单击“标题”选项卡,它也会正确显示: Header Selected

我假设它是因为在返回时没有选择选项卡,但不确定如何强制它在失败的QuerySave返回时显示Header选项卡。

3 个答案:

答案 0 :(得分:0)

这是因为您在该标签内有一个表单标签。一旦表单提交,它将重定向。你必须以自己的方式处理它以防止它。

可以说,如果“myForm”是您的表单ID,

dijit.byId('#myForm').on("submit", function () {
 sendFormToBackEnd(); // this will handle the POST functionality in js
 return false; //return false so it wont redirect now
});

或者最简单的一个是在调用本身中附加false。

<form ... action="callSubmit();return false;" >
...
</form>

答案 1 :(得分:0)

我不喜欢使用表单提交按钮。相反,使用带有Dojo的iframe请求的常规按钮:

<div data-dojo-type="dijit/form/From" data-dojo-id="myForm">
  
  <!-- other form fields here -->
  
  <div data-dojo-type="dijit/form/Button">
    <script type="dojo/method" data-dojo-event="onClick">
      // manually activate validation
      if (!myForm.validate()) {
        return;
      }
    
      require(["dojo/request/iframe"], function(iframe) {
        iframe("yourUrl", {
          // not sure if you can use the From widget directly
          form: myForm.domNode
        }).then(function(data) {
          // ...
        }, function(err) {
          // ...
        });
      });
    </script>
    Submit
  </div><!-- Button -->
</div><!-- Form -->

您显然不必使用标记data-dojo-event,只需将其全部放在一个名为onClick的函数中。

答案 2 :(得分:0)

问题是我在Header选项卡中有两个面板。第一个包含错误消息,如果viewScope.vsError!= null,则呈现面板,第二个没有呈现的属性。我所做的是移动了标题面板内的错误面板,似乎已修复它。我猜选项卡不喜欢panelError上的渲染。 无论如何,它的工作方式与我现在的方式相同。 感谢Per,这是一个渲染问题,但不是我想的那样。