如何通过jQuery将消息设置为p:messages组件?

问题描述 投票:2回答:2

我有以下p:messages组件:

<p:messages id="messageId" autoUpdate="true" closable="true" redisplay="false" />

我需要使用jQuery在其中显示一条消息:

jQuery(#messageId).val("Error message");

这可能吗?

javascript jquery jsf primefaces
2个回答
3
投票
$('messageId').append('<div class="ui-messages-error ui-corner-all"><span class="ui-messages-error-icon"></span><ul></ul></div>').children('ul').append('<li><span class="ui-messages-error-summary">' + summary + '</span><span class="ui-messages-error-detail">' + detail + '</span></li>')

假设消息组件的客户端ID是messageId。


1
投票

要模拟primefaces的正确行为,您需要添加此结构:

仅适用于显示摘要,您需要在需要时添加详细信息。

function mensaje(message, type){
    return '<div class="ui-messages-' + type + ' ui-corner-all">'+
        '<a href="#" class="ui-messages-close" onclick="$(this).parent().slideUp();return false;">'+
            '<span class="ui-icon ui-icon-close" />'+
        '</a>'+
        '<span class="ui-messages-' + type + '-icon" />'+
        '<ul>'+
            '<li>'+
                '<span class="ui-messages-' + type + '-summary">'+
                message +
                '</span>'+
            '</li>'+
        '</ul>'+
    '</div>';
};

这将返回消息的html结构,具体取决于您将其作为参数传递的类型('error','info','warn','fatal')。

现在你只需将它放在正确的位置:

$('#idPMessage').append(mensaje(yourMessage, 'yourType'));

这将提示带有X的消息将其关闭以及p:消息的正常行为。

希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.