将 jquery inputmask 与烧瓶一起使用

Using jquery inputmask with flask

我正在升级我的数学系的内部网页以使用 Python3 和 Flask 框架。我目前正在处理的页面使用输入屏蔽来强制执行特定的日期格式(除其他外):

With the "Date Given" box selected, the input masking appears

处理此页面的代码的基本布局是

def manage_exams():
    kwargs['content']=Markup(gl.get_html_to_list_all_exams())
    
    if form_name in ["add","edit"]:
        html=gl.get_html_for_exam_add_edit_pages(form_name, exam_id, course_id)
        return html

    return render_template("manage_exams.html", **kwargs)

随附javascript的相关部分是

$(document).ready(function() {
    $(".date").mask("99-99-9999");
    $("#weight").mask("9.9?9?9");
});

function manage_exam_AJAX(form_name, exam_id, course_id){
    var data = {form_name: form_name,
                exam_id: exam_id,
                course_id: course_id};
    $.ajax({
        type: 'post',
        dataType: 'html',
        url: 'manage_exams',
        async: false,
        data: data,
        success: function (response, status, xml) {
            if(response.error)
            {
                alert(response.data);
            }
            else
            {
                $("#main_content").html(response);
            }
        },
    error: function(response, status, xml) {
        alert(JSON.stringify(response));
        }
    });
}

我发现如果我重新渲染模板,输入掩码会按预期工作:

def manage_exams():
    kwargs['content']=Markup(gl.get_html_to_list_all_exams())
    
    if form_name in ["add","edit"]:
        kwargs['content']=Markup(gl.get_html_for_exam_add_edit_pages(form_name, exam_id, course_id))
    return render_template("manage_exams.html", **kwargs)

使用第二种方法,我将不得不 tweak/eliminate 我的 javascript 因为现在页面加载到自身内部,但我应该怎么做呢?无论如何我可以 return html 变量 使用 jquery?

编辑: 根据 @8oh8 的解决方案,我现在在 javascript 的成功部分调用掩码函数。这现在适用于我 returning 我的 'html' 变量而不是生成新请求的原始方法:

$(document).ready(function() {
    mask_functions();
});

function mask_functions(){
    $(".date").mask("99-99-9999");
    $("#weight").mask("9.9?9?9");
};

function manage_exam_AJAX(form_name, exam_id, course_id){
    var data = {form_name: form_name,
                exam_id: exam_id,
                course_id: course_id};
    $.ajax({
        type: 'post',
        dataType: 'html',
        url: 'manage_exams',
        async: false,
        data: data,
        success: function (response, status, xml) {
            if(response.error)
            {
                alert(response.data);
            }
            else
            {
                $("#main_content").html(response);
                mask_functions();
            }
        },
    error: function(response, status, xml) {
        alert(JSON.stringify(response));
        }
    });
}

我不太确定 mask() 函数的作用,但我怀疑某些绑定在 HTML 被交换后被破坏。设置新 HTML 后再次尝试调用掩码函数。