如何修改 sencha 中的 Ext.Msg.show 以显示两个文本框。现在当我们设置 prompt:true 时它只支持一个文本框
Ext.Msg.show({
title: 'Enter values',
width: 500,
buttons: Ext.Msg.OKCANCEL,
multiline: true,
prompt:true,
});
如何修改 sencha 中的 Ext.Msg.show 以显示两个文本框。现在当我们设置 prompt:true 时它只支持一个文本框
Ext.Msg.show({
title: 'Enter values',
width: 500,
buttons: Ext.Msg.OKCANCEL,
multiline: true,
prompt:true,
});
最简单的解决方案就是创建一个窗口。就像埃文在评论中说的那样,MessageBox 只是一个Ext.window.Window
额外的宽度..
一个工作小提琴
这是一个示例定义:
Ext.define('MyApp.view.Login', {
extend: 'Ext.window.Window',
height: 220,
width: 490,
layout: 'fit',
modal: true,
buttonAlign: 'left',
closable: false,
items: [
{
xtype: 'form',
frame: false,
border: 0,
layout: {
type: 'hbox',
align: 'middle'
},
fieldDefaults: {
msgTarget: 'side',
labelWidth: 55
},
items: [
{
xtype: 'container',
flex: 1,
padding: 10,
layout: {
type: 'vbox',
align: 'stretch'
},
items: [
{
xtype: 'textfield',
name: 'username',
fieldLabel: 'Username',
allowBlank: false,
flex: 1
},
{
xtype: 'textfield',
name: 'password',
fieldLabel: 'Password',
inputType: 'password',
allowBlank: false,
flex: 1
}
]
}
]
}
],
buttons: [
{
text: 'Login',
handler: function () {
Ext.Msg.alert('This is not yet implemented.').show();
}
}
]
});
然后你可以创建并显示窗口:
Ext.create('MyApp.view.Login').show();
Ext.MessageBox 的 msg 属性将呈现为 HTML,因此您可以告诉它显示两个 HTML 输入,然后使用来自这些输入的值使用类似
Ext.Msg.show(
{
title: 'Enter values:',
width: 500,
buttons: Ext.Msg.OKCANCEL,
msg: 'Value1: <input type="text" id="textInput1" /><br />Value 2: <input type="text" id="textInput2" />',
fn: function (button)
{
var value1 = document.getElementById('textInput1').value;
var value2 = document.getElementById('textInput2').value;
}
});
虽然,根据您要执行的操作,按照建议使用窗口可能是更好的解决方案