Javascript don';在html中按按钮时无法获取值

Javascript don';在html中按按钮时无法获取值,javascript,html,python-3.x,flask,Javascript,Html,Python 3.x,Flask,我有一个按钮,点击它时只需要执行一个javascript函数。javascript函数返回我打算在flask后端捕获的字符串。当前javascript函数在onclick上运行 守则: <form id='details'method="post"> <input class="myButton" id="mybutton" type="submit" value="Save&q

我有一个按钮,点击它时只需要执行一个javascript函数。javascript函数返回我打算在flask后端捕获的字符串。当前javascript函数在onclick上运行

守则:

<form id='details'method="post">
     <input class="myButton" id="mybutton" type="submit" value="Save" onclick="getdata()">
     </input>
</form>
在烧瓶里,当我发出请求时,我什么也得不到。我希望从getdata获取返回的数据。我很确定,html方面存在一些问题。请给我一些建议

得到了很多关于相同的评论,但它没有修复…只是想知道是否有其他方法来处理它,我只需要在按钮单击上收集的文本传输到python后端,这似乎很简单,但无法完成:( 谢谢


#编辑2检查此答案

我在此报告大部分内容,作为参考:

  • [
    request.args
    ][2]:URL查询字符串中的键/值对
  • [
    request.form
    ][3]:主体中的键/值对,来自HTML post表单,或非JSON编码的JavaScript请求
  • [
    request.files
    ][4]:正文中的文件,它与
    form
    分开。HTML表单必须使用
    enctype=multipart/form data
    ,否则将不会上载文件
  • [
    request.values
    ][5]:组合了
    args
    form
    ,如果键重叠,则首选
    args
  • [
    request.json
    ][6]:解析的json数据。请求必须具有
    application/json
    内容类型,或者使用[
    request.get_json(force=True)
    ][7]忽略内容类型
所有这些都是[
MultiDict
][8]实例(除了
json
)。您可以使用以下方法访问值:

  • request.form['name']
    :如果知道密钥存在,请使用索引
  • request.form.get('name')
    :如果密钥可能不存在,请使用
    get
  • request.form.getlist('name')
    :如果键被多次发送,并且您想要一个值列表,请使用
    getlist
    get
    仅返回第一个值

首先,如果您还添加了flask代码,这会很有帮助。也就是说,将此添加到输入标记:

<form id='details'method="post">
     <input class="myButton" name="details" id="mybutton" type="submit" value="Save" 
     onclick="getdata()">
 </input>
</form>
如果将值存储在一个变量中(显然这取决于您,只是一个建议),效果会更好

此外,在表单标签中,您可能需要添加一个“action=”“”字段。这取决于如何在烧瓶中路由装饰器

如果您有以下示例:

@app.route('/details)
def details():
    pass
<form id='details'method="post" action="/details">
那么您的表单应该包含以下内容:

@app.route('/details)
def details():
    pass
<form id='details'method="post" action="/details">
如果仍要使用添加url规则,请尝试以下操作:

app.add_url_rule('/', 'entry1', view_func=new_data, methods=['GET', 'POST'] )


您在flaskrequest.form['details']中没有得到任何信息,因为数据是使用javascript发送的。您应该尝试:

request.data  # if data was sent as plain text


如果我的回答没有帮助,那么也共享python代码什么是
getdata()
do?getdata从文本框捕获所有数据并组合成一个字符串。然后它返回字符串,在某些文本框中返回值?如果我请求,请确保textbox在表单中。oops。表单['details'],然后我在button.value中得到“Save”作为。我不明白你的意思?你能指定得更好吗?你是否尝试添加“name=”“”标记?是的,我添加了,但当我从python代码访问它时,我只得到按钮的值,即“Save”,而不是GetDataReturned的值在新的\u数据()中是否有一个return render\u模板:函数?哦,不,如果我说details=request.data,我什么也得不到,我只得到b''作为details值…我陷入了一个看似无害的问题中:(
@app.route('/entry1', methods=['GET', 'POST'])
def new_data():
    if request.method == 'POST':
        details = request.form['details']
        print(details)
    return render_template('filename.html')
app.add_url_rule('/', 'entry1', view_func=new_data, methods=['GET', 'POST'] )
request.data  # if data was sent as plain text
request.get_json() # if data was sent as json