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

时间:2015-04-10 16:36:03

标签: javascript jquery jsf primefaces

我有以下p:messages组件:

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

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

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

这可能吗?

2 个答案:

答案 0 :(得分: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 :(得分:1)

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

  

仅适用于显示sumary,您需要在需要时添加细节。

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结构,具体取决于您将其作为参数传递的类型(&#39;错误&#39;,&#39;信息&#39;,&#39;警告&#39;,& #39;致命&#39;。)

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

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

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

希望这有帮助。