如果你有
<button class="button yellow" type="submit"
name="button">Log in</button>
并且你提交了什么,什么被发布到服务器上的按钮有一个名称但没有值属性?
我问的原因是我正在解析HTML表单,并且需要发布将数据发送到服务器的命名值。我把其他人盖了,但不确定按钮。
答案 0 :(得分:2)
button
时, server
不会发布到form
。只有input
类型的text
,password
,select
元素等接受用户inputs
才会发布到server
答案 1 :(得分:2)
根据HTML Spec,按钮的值由其value
属性确定,或者为空字符串。如果按钮具有名称并且用于启动表单提交,则仅使用表单提交按钮的值。如果单击示例中的按钮,则结果提交将为:
"button=" (quotes added)
某些浏览器(主要是较旧的IE版本)具有此按钮行为的incorrect implementations,可以将值设置为按钮的内容,也可以提交所有按钮值,而不管启动源。
答案 2 :(得分:1)
Button永远不会为表单提供价值。它只是提供一个提交事件,告诉浏览器使用method属性值将包含所有输入标记的表单提交到表单标记内的action属性。按钮仅提供事件而不是值。
答案 3 :(得分:1)
服务器上没有任何按钮发布的内容。当您单击按钮时,它会调用submit
的操作,即全部。
答案 4 :(得分:0)
我通过在django中打印request.POST来尝试
This image显示“登录”按钮,没有值,但名称=“按钮”,如所要求的那样
控制台shows
< QueryDict: {u'csrfmiddlewaretoken': [u'9aAx..'], u'sensor': [u'sd1'], u'button':[u'']}>
因此,在这种情况下,表单作为字典发送,对于按钮,键,值对是“按钮”:“”。因此,如果您尝试使用request.POST.get获取此按钮的值,您将获得NULL。
因此,您的问题的答案是表单合并所有输入值,可以使用包括按钮在内的“名称”进行访问。如果未提供任何值,则返回NULL。