2

可能重复:
Javascript添加删除行发送表单而不是添加行

我有一个包含两种形式的页面。

一种形式只是有一个隐藏的输入元素,用于帮助连接查询字符串。

在另一种形式中,我有一个简单的按钮元素(不是输入类型提交按钮),想法是在单击时提交其他形式(使用 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)......我的意思是,哇,没有看到这种情况,哈哈。

我得到的错误与此无关,因为它是查询字符串中的一些转换错误,我仍然需要解决(此时,任何时候提交大表单 [不是上面显示的] 时都会发生此 YSOD)。另外这个 YSOD 是运行时错误,不是编译器错误,因为页面加载没有问题,直到它认为提交了,随后执行 IsPost 分支。

无论如何,我可以以某种方式告诉(即使我设置了 onclick=""),这个确实驻留在大表单中的按钮实际上是在尝试提交表单?

不仅我之前在其他表单中使用过常规按钮元素,并且一直认为常规按钮永远无法提交表单,我还多次清除缓存,以确保没有任何愚蠢(在那个级别)发生. 无论如何,我似乎需要有关如何通过 html 表单解释普通按钮元素的教育。

请帮忙,我真的很茫然。这怎么可能?

谢谢,如果需要更多代码,请告诉我。

4

2 回答 2

5

W3C 按钮 wiki 页面

缺失值默认 [for type] 是提交按钮状态。

换句话说,任何button没有type属性的都是提交按钮,默认会提交表单。将您的代码更改为<button type="button" onclick="...">

于 2012-12-14T16:18:22.583 回答
2

看看:http ://www.w3schools.com/tags/tag_button.asp

提示和注意事项

注意:如果您在 HTML 表单中使用该元素,不同的浏览器可能会提交不同的值。用于在 HTML 表单中创建按钮。

如果您想要一个不提交表单的按钮,请使用<input type=button />HTML button to NOT submit form

干杯。

于 2012-12-14T16:17:31.873 回答