可能重复:
Javascript add delete row sends form instead of adding row
我有一个包含两种表单的页面。
一个表单只有一个隐藏的输入元素,用于帮助连接查询字符串。
在另一种形式中,我有一个简单的按钮元素(不是输入类型提交按钮),其想法是提交另一个表单onclick(使用JavaScript)。按钮就是这种形式。
就目前而言(出于测试目的),我现在所做的就是调用一个名为changeSpec()的JavaScript函数,其中绝对唯一的代码行是一个警告框,显示隐藏输入元素的值
按钮:
<td class="entry" colspan="3"><button onclick="changeSpec()">Change Species</button></td>
带有隐藏输入元素的表单:
<form id="specChange" action="" method="get"><input id="hiddenSpec" type="hidden" value='@oppSpec' /></form>
JavaScript函数:
function changeSpec()
{
alert($("#hiddenSpec").val());
}
当我点击普通按钮元素时,我收到服务器端错误(YSOD)......我的意思是,WOW,没有看到即将到来,哈哈。
我得到的错误与此无关,因为它是一个查询字符串中的一些转换错误我仍然要整理(此YSOD发生,此刻,任何时候大表格[不是上面显示的那个]是提交)。此YSOD也是运行时错误,而不是编译器错误,因为页面加载没有问题,直到它认为它已提交,并且随后执行IsPost分支。
无论如何,我可以告诉你(即使我设置了onclick =“”),这个按钮,它确实存在于大表格中,实际上是在尝试提交表单吗?
我以前不仅使用其他形式的常规按钮元素,而且一直认为常规按钮永远不会提交表单,我也已经多次清除缓存,只是为了确保没有任何愚蠢(在该级别上)正在进行。无论如何,似乎我需要一个关于如何通过html表单解释普通按钮元素的教育。
请帮助,我真的在这里不知所措。这怎么可能?
谢谢,如果需要更多代码,请告诉我。
答案 0 :(得分:4)
缺失值default [for
type
]是Submit Button状态。
换句话说,任何没有button
属性的type
都是提交按钮,默认情况下会提交表单。将代码更改为<button type="button" onclick="...">
答案 1 :(得分:2)
看看:http://www.w3schools.com/tags/tag_button.asp
提示和注释
注意:如果您在HTML表单中使用该元素,则不同 浏览器可以提交不同的值。用于创建按钮 一个HTML表单。
如果您想要一个不提交表单的按钮,请使用<input type=button />
:HTML button to NOT submit form
干杯。