1

我注意到 C# 中有一个奇怪的问题,它困扰了我好几个星期,所以我想我只是把这个问题放在那里。所以我的问题基本上是 C# 如何处理<form>服务器表单中的多个客户端<form runat="server">?我一直在写一个网站,我遇到了一个非常奇怪的问题。

因此,这是重现此问题的基本细分。

1)有一个简单的javascript方法,里面有一个警报,如果它被调用就会触发。

 eg:   function tester() {
         alert("adf");
       }

2) 在 Visual Studios 2010 中打开一个全新的 Web 窗体项目。(它应该<form runat="server">已经为您创建了一个。)

  eg: <form runat="server"> <form/>
     You can only have one of these.

3)现在在这个表单标签内,写一个理论上应该什么都不做的空表单标签:

  eg: <form action=""><form/>

4) 现在在调用 javascript 方法的表单之后创建另一个表单。

  eg: <form action="javascript:tester()" >
       <button type="submit" >Search</button>
        </form>

5) 现在运行此代码,您应该会在按下按钮后看到弹出警报。

6)现在取出空的表格标签:删除: <form action=""><form/>

7) 再次运行代码,现在你应该发现你的 javascript 调用不再触发,而是每次按下按钮时都会刷新页面。

所以这是我一直困扰我的问题,我希望一些大师可以很快为我解答,因为这一直困扰我很长时间。我不知道为什么它适用于两种形式,为什么它不能只适用于一种形式。希望有人能尽快回答这个问题。提前非常感谢!!!

一些有用的信息:

根据这个页面,我可以有多个基于“客户端”的表单标签,这应该不是问题......

为什么你不能有一个包含多个服务器端表单标签的页面?

...但是...问题仍然以某种方式表现出来。

4

1 回答 1

2

form标签中包含form标签是违反 html 规范的,因此任何结果都是未定义的行为。

对于您的特定问题,您可以不这样做吗?

<button onclick="tester();">Search</button>
于 2012-09-10T19:34:17.583 回答