c# - 常规按钮元素提交表单,这怎么可能?

标签 c# javascript html forms webmatrix

<分区>

Possible Duplicate:
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)...我的意思是,哇,没看到会出现这种情况,大声笑。

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

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

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

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

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

最佳答案

来自W3C button wiki page :

The missing value default [for type] is the Submit Button state.

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

关于c# - 常规按钮元素提交表单,这怎么可能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13882332/

相关文章:

c# - 代码分析不适用于 nuget 包中的规则集(来自 .props)

javascript - 如何在 ng-repeat 中显示缩短的日期)( ionic 框架)

jquery - 添加到文本区域的所有行之前

c# - 将 Canvas 保存为 png C# wpf

c# - 将零字节添加到字节数组的最简单方法是什么?

c# - .Net WebApi 中的多个等待异步

javascript - 为 vis.js(PHP 到 JavaScript)准备数组

javascript - 使用Kendo Bullet Graph如何将目标线更改为虚线?

javascript - Html5 音频标签在 iOS7 设备上不起作用

javascript - AngularJS:从 ng-include 访问绑定(bind)对象