Javascript don';在html中按按钮时无法获取值
我有一个按钮,点击它时只需要执行一个javascript函数。javascript函数返回我打算在flask后端捕获的字符串。当前javascript函数在onclick上运行 守则: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
<form id='details'method="post">
<input class="myButton" id="mybutton" type="submit" value="Save" onclick="getdata()">
</input>
</form>
在烧瓶里,当我发出请求时,我什么也得不到。我希望从getdata获取返回的数据。我很确定,html方面存在一些问题。请给我一些建议
得到了很多关于相同的评论,但它没有修复…只是想知道是否有其他方法来处理它,我只需要在按钮单击上收集的文本传输到python后端,这似乎很简单,但无法完成:(
谢谢#编辑2检查此答案 我在此报告大部分内容,作为参考:
- [
][2]:URL查询字符串中的键/值对request.args
- [
][3]:主体中的键/值对,来自HTML post表单,或非JSON编码的JavaScript请求request.form
- [
][4]:正文中的文件,它与request.files
分开。HTML表单必须使用form
,否则将不会上载文件enctype=multipart/form data
- [
][5]:组合了request.values
和args
,如果键重叠,则首选form
args
- [
][6]:解析的json数据。请求必须具有request.json
内容类型,或者使用[application/json
][7]忽略内容类型request.get_json(force=True)
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