2012-11-29 123 views
3

如何将取消按钮的文本从CANCEL更改为CLOSE?谢谢!在jqueryUI对话框按钮打开后更改文本

$("#dialog").dialog({ 
    buttons  : [ 
     { 
      text : 'SAVE', 
      click : function() {} 
     }, 
     { 
      text : 'CANCEL', 
      click : function() {} 
     } 
    ]  
}); 
$("#button").click(function(){alert('Please change cancel button text from "CANCEL" to "CLOSE"');}); 

<div id="dialog"><button id="button">Change cancel button text from "CANCEL" to "CLOSE"</button></div> 
+2

写 '关闭',而不是 '取消'? –

+0

@ExplosionPills。想要以给定的“取消”文本开始,但稍后用户单击该按钮时,文本将变为“关闭”。请注意,该按钮位于对话框内。 – user1032531

+0

您是否从文档中尝试过setter? http://api.jqueryui.com/dialog/#option-buttons – greener

回答

12

指定对话框的类名,并从类中选择UI按钮。

$('#foo').dialog({ 
    buttons: { 
     CANCEL: function() { 
      alert(1); 
     } 
    }, 
    dialogClass: 'my-dialog' 
}); 
$('.my-dialog .ui-button-text:contains(CANCEL)').text('CLOSE'); 
+0

谢谢mattn。不知道dialogClass。似乎它会起作用。我也不知道你是如何使用... uton-text:contains(CANCEL)。你能否详细说明一下?谢谢 – user1032531

+0

@ user1032531哈哈,可以写'$ .each('。my-dialog .ui-button-text',function(){...})'但对我来说太长了。 ;) – mattn

+0

了解打字太多:)仍然不确定这将如何工作。我会试验。 – user1032531

3

您可以设置按钮上的文字初始化(documentation)外:

$("#dialog").dialog({ 
    autoOpen: true, 
    buttons: [{ 
     text: "Cancel", 
     click: function() { 
      $(this).dialog("close"); 
     } 
    }] 
}); 
$("#dialog").dialog("option", "buttons", [ { text: "Close", click: function() { $(this).dialog("close"); } } ]); 

您也可以将其绑定到一个事件。

+0

谢谢你。这是如何定位取消按钮而不是保存按钮? – user1032531

+0

它没有。但是我正确地猜测,由于数据被发送到服务器('保存')并且想要向用户显示关闭对话框的按钮,所以您正在更改文本? – greener

+0

就像你说的那样。一个新的对话框打开,显示一个带有取消/保存按钮的开放输入表单。用户点击取消,它明显关闭。用户点击保存,打开的输入变为不可编辑的文本(但附近有编辑按钮),取消按钮变为关闭。用户点击编辑按钮,关闭对话框按钮从关闭变为取消 – user1032531

9

这是一个非常简单的事情:)

$("#dialog").dialog({ 
    "buttons" : [ 
    { 
     id: "my-button", 
     text: "My button", 
     click:function() { 
      $("#my-button span").text("Our button!:)"); 
     } 
    } ] 
}); 
+2

非常好。应该是被接受的答案。 –

相关问题