Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
flask wtf.quick_form运行一些javascript并设置一个表单变量_Javascript_Flask_Wtforms - Fatal编程技术网

flask wtf.quick_form运行一些javascript并设置一个表单变量

flask wtf.quick_form运行一些javascript并设置一个表单变量,javascript,flask,wtforms,Javascript,Flask,Wtforms,我正在创建博客帖子,到目前为止,我已经用一个普通的html表单完成了这项工作。我所做的一件怪事是运行javascript onclick并在表单中设置一个隐藏变量,其中包含来自页面的额外数据。这是通过request.form传递到服务器的。现在我想使用wtf.quick_表单来输入博客文章。quick_表单对于简单的事情非常有用,但现在我需要在单击时运行一些javascript,然后设置一个表单变量。在服务器上,我需要检索这个表单变量。有人知道怎么做吗 作为一个例子,我尝试了以下方法: {{ w

我正在创建博客帖子,到目前为止,我已经用一个普通的html表单完成了这项工作。我所做的一件怪事是运行javascript onclick并在表单中设置一个隐藏变量,其中包含来自页面的额外数据。这是通过request.form传递到服务器的。现在我想使用wtf.quick_表单来输入博客文章。quick_表单对于简单的事情非常有用,但现在我需要在单击时运行一些javascript,然后设置一个表单变量。在服务器上,我需要检索这个表单变量。有人知道怎么做吗

作为一个例子,我尝试了以下方法:

{{ wtf.form_field(form.submit, button_map={'submit':'new_entry_submit_button'}) }}
{{wtf.quick_form(form)}} 
然后像这样使用jquery拦截submit按钮:

$(function(){        
    $('#new_entry_submit_button').bind('click', function(e) {        
        x = getSavedAndClickedAsString();
        document.getElementsByName("srcLibArticles").item(0).value =  x; <!--libArStr; -->
        return true
    });
});
我试图编写javascript,在提交时更新隐藏字段,并将更新后的隐藏字段发送回服务器

编辑2: 我已经编写了以下html,它几乎可以工作,但仍有一些奇怪的事情发生:

<form  method="post" role="form">       
    {{ wtf.form_field(form.title) }}
    {{ wtf.form_field(form.text) }}
    {{ wtf.form_field(form.tags) }}
    {{ wtf.form_field(form.srcLibEntries, id="srcLibArticles") }}
    {{ wtf.form_field(form.submit, button_map={'id':'new_entry_submit_button'}) }}
</form>

下面是一个非常简单的示例,演示了如何使用WTForms通过Flask引导创建表单,因为您在代码中似乎正在这样做:

<form class="form form-horizontal" method="post" role="form">
  {{ form.hidden_tag() }}
  {{ wtf.form_errors(form, hiddens="only") }}

  {{ wtf.form_field(form.field1) }}
  {{ wtf.form_field(form.field2) }}
</form>
为了回答你的问题,这很难做到,因为你没有向我们展示任何错误。但有一件事是

$("#new_entry_submit_button")
是id属性的jQuery选择器。要在烧瓶引导中设置,请使用:

{{ wtf.quick_form(form, id="whatever") }}
或:


谢谢这看起来非常接近我需要的。我唯一不知道的是如何设置一个带有特定id的隐藏字段,然后用javascript填充该字段,并在提交时将其发送回服务器。你有一些隐藏在那里的台词,但我不明白。再详细一点可能会有帮助:[我发现这一点]我仍然很困惑。我复制了你的代码,它不会呈现任何输入框。我是否正确地假设代码中的表单引用了我在呈现模板时从服务器提交的表单?form.field1指的是我在烧瓶表单中写的表单字段?请记住,wtf.form_字段实际上只是一个样式函数。所以为了清楚起见,也许现在最好把它去掉。很抱歉,我的解决方案第一次不起作用。有关正确的解决方案,请参阅最后一个代码块。form.field1id='which'这一个应该可以让您完成向隐藏字段添加值的剩余过程。
{{ wtf.quick_form(form) }}
$("#new_entry_submit_button")
{{ wtf.quick_form(form, id="whatever") }}
<form class="form form-horizontal" method="post" role="form">
  {{ form.hidden_tag() }}
  {{ wtf.form_errors(form, hiddens="only") }}
  {{ wtf.form_field(  form.field1(id='whatever')  ) }}
  {{ wtf.form_field(form.field2) }}
</form>