jQueryUI对话框 - 没有出现按钮文本

时间:2011-02-17 15:57:37

标签: jquery-ui jquery-ui-dialog

我在对话框中发生了一个奇怪的错误,我正在加载对话框,但每当我给它分配一个按钮时,虽然它会显示按钮,但它不会显示按钮的名称。这是我成功启动对话框的代码......

jQuery('#'+message_div_id).dialog({
    modal:      ui_popup_modal
,   width:      ui_popup_width
,   height:     ui_popup_height
,   resizable:  false
,   draggable:  false
,   buttons:    {
                    "Ok": function() {
                        jQuery( this ).dialog( "close" );
                    }
                }
});

弹出窗口加载后,这是bugzilla生成的html ...

< button type="button" text="Ok" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" role="button" aria-disabled="false">< span class="ui-button-text">< /span>< /button>

span类是应包含文本的区域,但正如您所看到的,它不是。有什么想法吗?

7 个答案:

答案 0 :(得分:4)

这给了我很多启发,但它并不适合我,我做了以下修改。我认为这样做效果更好。

$('div.ui-dialog-buttonset button.ui-button span.ui-button-text').each(function() {
    $(this).html($(this).parent().attr('text'));
});

答案 1 :(得分:4)

这适用于jQuery UI v1.8.22 CDN(已测试):

$('div.ui-dialog button.ui-button').each(function() {
   $(this).children('.ui-button-text').html($(this).attr('text'));
});

答案 2 :(得分:0)

我觉得有些东西不见了。很高兴看到它的运作。我尝试创建一个测试但没有文本,但缺少css。如果我这样做有效:

<button type="button" text="Ok" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" role="button" aria-disabled="false"><span class="ui-button-text">Text Here</span></button> 

答案 3 :(得分:0)

对不起,SO新手。

无论如何,由于这段代码只是更大功能的一部分,而且我无法通过jQueryUI网站上的示例代码解决问题,我最终解决了这个问题:

var button1_text = '';

(ui_popup_but1 != '') ? button1_text = ui_popup_but1 : button1_text = 'OK';

jQuery('button[text="button1"] span').html(button1_text);

答案 4 :(得分:0)

我有类似的问题。最后通过将当前使用的1.3版本的jQuery升级到当前版本(1.7.1)来解决它。我刚刚注意到我使用的jQuery UI版本不是最新的(1.8.11 vs 1.8.18的当前值)。我将尝试降级jQuery并将jQuery UI升级到当前,看看会发生什么。

编辑:jQuery UI 1.8.18修复了我使用jQuery 1.3.2和1.7.1的问题,所以看起来像1.8.11有一个缺陷导致它与1.3.2不兼容(我假设它应该是自.18以来,我认为它们不会改变这种小版本更改之间的兼容性。)

答案 5 :(得分:0)

有同样的问题并最终修补了jquery-ui.js

--- jquery-ui-1.8.23.js 2012-09-14 11:18:34.000000000 +-1000
+++ jquery-ui-1.8.23.js 2012-09-14 11:31:07.000000000 +-1000
@@ -9088,13 +9088,16 @@
                    .appendTo(uiButtonSet);
                // can't use .attr( props, true ) with jQuery 1.3.2.
                $.each( props, function( key, value ) {
                    if ( key === "click" ) {
                        return;
                    }
-                   if ( key in button ) {
+                   if ( key == "text" ) {
+                       button.html( value );
+                   }
+                   else if ( key in button ) {
                        button[ key ]( value );
                    } else {
                        button.attr( key, value );
                    }
                });
                if ($.fn.button) {

答案 6 :(得分:0)

我遇到了同样的问题,但之所以没有文字,是因为我有依赖性问题。简而言之,我在最终的html文件中包含了2个jquery ui js。当我只留下一个版本的jquery ui时,一切似乎都按预期工作。