这是我的formpanel中的文本字段:
{
xtype: 'textfield',
fieldLabel: 'Homepage',
name: 'homepage',
tabIndex: 4,
padding: '10'
}
我希望显示的加载值是可点击的链接。
修改:
因为开头没有“http://”的网页不会显示在新标签中,我更改了解决方案:
listeners: {
render: function (field) {
this.getEl().on('click', function (e, t, eOpts) {
var url = e.target.value;
if (url != '') {
if (url.indexOf("http://") != -1) {
var win = window.open(url, '_blank');
} else {
var win = window.open('http://' + url, '_blank');
}
win.focus();
}
}
}
}
答案 0 :(得分:2)
你无法实现自己想要的目标。对于“链接”,你必须这样做 使用其他组件可能是带有链接的标签。但是通过一些技巧,您可以使文本字段中的值显示为链接。为此,您可以执行以下操作:
{
xtype: 'textfield',
name: 'name',
id:'link',
fieldStyle: 'color: blue; text-decoration:underline; cursor:pointer',
listeners: {
render: function (field) {
this.getEl().on('click', function (e, t, eOpts) {
console.log(e);
//here you need to do some hack around to restrict changing href,only on click of input in the textfield.Could not achieve that,but tried to give some idea.
var url = e.target.value;
if(url != ''){
window.location="";
}
});
}
}
}
希望这有助于您: - )
答案 1 :(得分:1)
为此,您可以使用render函数,如下所示:
{
xtype : 'displayfield',
id: 'yourId',
name:'yourName',
fieldLabel: 'This is the label',
renderer: function(data, field) {
return '<a href="'+data+'">'+data+'</a>'
}
}
它可能不是最优雅的解决方案,但它可以工作:)