python - 如何使用 Wtforms 在字符串字段中呈现(使可点击)url
问题描述
我正在尝试使 Wtforms 字符串字段中的 URL 可点击。
到目前为止,url 已填充到 Stringfield 中,但它不可点击/点击不会重定向到网页,因为它是文本。
见表格图片:
我的js代码是:
function update_Company_Name()
{
var my_isin_id = $('#isin_id').val();
$.getJSON( $SCRIPT_ROOT + '/ajax_update_event_table',
{
isin_id: my_isin_id
}, function(data)
{
if (data.success!=false){
$('#url_main').val(data.success['url_main']);
}
else{
alert('failed to update url box');
}
}
);
};
后面的python/flask代码是:
from wtforms import StringField as _StringField
............blahbla
url_main = _StringField(label='Main Website')
我目前的解决方法是采用评论中给出的板载信息。
在我的烧瓶/Wftforms 代码中添加了一个渲染:
url_main = _StringField(label='Main Website', render_kw={'onclick':'open_WebPage(this.value)', 'type':'button', 'readonly':None})
它将表单显示为可点击,我想下一步是使用 css 将其显示为超链接
我在 Html 页面上添加了这个 java 脚本函数:
<script>
function open_WebPage(url_to_open)
{
if(url_to_open)
{
window.open(url_to_open);
}
};
</script>
它可以解决问题,尽管我希望可能由另一个 Wftforms 组件提供更简单的解决方案,否则/我是 js、html python 的新手。
解决方案
这应该工作
from Flask import Markup
url_label = Markup("<a href='YOUR_URL'>Main Website</a>")
url_main = _StringField(label=url_label)
推荐阅读
- javascript - 如何添加“大约几分钟前、大约几小时前等;” 在 .filter 中用于 angular/ionic v1 项目
- c# - 我可以通过 Blazor 组件更新 DateTime
- javascript - 使用带有 JQuery 的 XML 文件自动完成输入
- apache-spark - 计算比例 Py(Spark) 的置信区间
- architecture - 如何在新增的微服务中实现数据一致性?
- php - IMAP PHP 中不显示新电子邮件
- logstash - logstash中有这么多变量
- blazor - Blazor 服务器强制缓存重新加载
- android - 推送通知即将到来时,Android 应用程序崩溃
- sql-server - SQL UPDATE 和 CASE 语句不起作用