如何使用 Wtforms 在字符串字段中渲染(使其可点击)url

问题描述 投票:0回答:2

我正在尝试使 Wtforms Stringfield 中的 URL 可单击。

到目前为止,url 已填充到字符串字段中,但它不可单击/单击不会重定向到网页,因为它是文本。

见表格图片:

enter image description here

我的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')

我当前的解决方法已采用评论中给出的船上信息。

在我的 Flask/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 的新手。

python url flask wtforms
2个回答
2
投票

这应该有效

from Flask import Markup

url_label = Markup("<a href='YOUR_URL'>Main Website</a>")
url_main = _StringField(label=url_label)

0
投票

Flask 在 2.3.0 版本中已弃用标记(请参阅此处)。

该实现已移至

markupsafe
包,并且可以以相同的方式使用:

from markupsafe import Markup

url_label = Markup("<a href='YOUR_URL'>Main Website</a>")
url_main = _StringField(label=url_label)
© www.soinside.com 2019 - 2024. All rights reserved.