javascript - 如何使 "xp"命名空间中的不同 id 可见

标签 javascript jquery dialog jquery-selectors xpages

基本上我有一个 XPage,我在其中使用 JQuery。在此页面上,我有一个默认隐藏的对话框(使用 JQuery)。在此对话框中,我输入一些必须验证的数据(非空等)。我遇到的问题是必须在 xp 命名空间中声明它。否则,JQuery 无法识别在 xp 命名空间

中声明的 id
<xp:div id="dialogAddPart">
<!-- Backend code to save, validate, etc -->
</xp:div>

保存、验证有效,但 div 默认情况下不隐藏。

<div id="dialogAddPart">
//Also validating, saving (doesn't work at all)
</div>

JQuery 语句:

var dialogAddPartDiv = $('#dialogAddPart');

$('#addButton').click(function() 
  {
        dialogAddPartDiv.dialog('open');
  });

  dialogAddPartDiv.dialog(
  {
  create: function (event, ui) {


                $(".ui-corner-all").css('border-bottom-right-radius','8px');
                $(".ui-corner-all").css('border-bottom-left-radius','8px');
                $(".ui-corner-all").css('border-top-right-radius','8px');
                $(".ui-corner-all").css('border-top-left-radius','8px');

                $(".ui-dialog").css('border-bottom-left-radius','0px');
                $(".ui-dialog").css('border-bottom-right-radius','0px');
                $(".ui-dialog").css('border-top-left-radius','0px');
                $(".ui-dialog").css('border-top-right-radius','0px');

                $('.ui-dialog-titlebar-close').css('margin', '-25px -20px 0px 0px').css('border', 'solid 2px').css('border-radius', '15px').css('border-color', '#05788d');
                $('.ui-dialog-titlebar-close').css('width', '25px').css('height', '25px');
            },

    autoOpen: false,
    modal: true,
    beforeClose : function(event) 
    {
        if(!confirm("Close?"))
        {
        return false;
        }
        else 
        {

        }
    },
    width:600,
    resizable: false
  });

在第二种情况下,验证和保存不起作用,但默认情况下是隐藏的。如何使 dialogAddPart 在命名空间 xp 中对 JQuery 可见?

最佳答案

将样式 display: none 添加到您的 xp-div 元素:

<xp:div
    id="dialogAddPart"
    style="display: none;">
    dialogBox
</xp:div>
<xp:button
    type="button"
    id="addButton">
    +Add button
    <xp:eventHandler
        event="onclick"
        submit="false">
        <xp:this.script>
            <![CDATA[
                $("[id$='dialogAddPart']").css({ display: "inherit" });
            ]]>
        </xp:this.script>
    </xp:eventHandler>
</xp:button>

这将在页面加载时隐藏 div 元素,您可以通过 jQuery 使用 addButton 使其可见。

关于javascript - 如何使 "xp"命名空间中的不同 id 可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48257873/

相关文章:

javascript - Electron js : cannot read property 'showSaveDialog' of undefined

javascript - 使用 React 和 Redux 传播运算符错误

javascript - querySelector 中哪些字符需要转义?

javascript - 如何将html内容添加到另一个元素?

jquery - soundmanger 2 无法在 Rails 应用程序中工作

jquery - 如何创建一个类似于stackoverflow的框,点击关闭

jQuery 对话框

javascript - 使用 Node.js 的 JSON 数据

javascript - 使用 javascript 获取输入字段值并将其显示在 div 中

javascript - 危险的滑动器,需要取消滑动到下一张幻灯片