我可以假设 asp.net 表单的 ID 始终相同吗?
我想在 jQuery 中提交一个简单的 asp.net 表单,
我可以假设
$("form[0]").submit()
总是可以跨浏览器工作吗?
I want to submit a simple asp.net form in jQuery
can I assume
$("form[0]").submit()
always works, cross browser?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
你的意思是这样的东西像
上面这样可以跨浏览器工作,正如你所说的
你粘贴的代码也是跨浏览器的。它不适用于任何浏览器,所以也许这算作跨浏览器:-) 只是一个笑话
You mean something like this
Something like above would work cross browser as you said
The code you pasted is cross browser too. It won't work on ANY browser so maybe that counts as cross browser :-) just a joke
不,你不能这样假设。
$("form[0]").submit()
将提交页面上的第一个表单。但是,一个 ASP.NET 页面上可以有多个表单,但其中只有一种表单可以是服务器端表单(带有runat="server"
属性)。如果您想要在 ASP.NET 页面上提交服务器端表单,那么我认为最好的方法是通过注册脚本在代码隐藏中完成此操作。这有点麻烦,但应该始终有效(并且当没有服务器端表单时,它会检测到它)。像这样的事情:
No, you can't assume this.
$("form[0]").submit()
will submit the first form on the page. However, you can have more than one form on an ASP.NET page, though only one of these forms can be a server-side form (withrunat="server"
attribute).If what you want is to submit the server-side form on an ASP.NET page then I think the best way would be to do it in code-behind by registering a script. It's a bit more hassle, but should always work (and when there is no server-side form it will detect it). Something like this:
这些将:
或
These will:
or
如果您知道此代码将由 ASP.NET 表单中的
input
或button
元素触发,或者您可以选择已知的input
> 或 ASP.NET 表单中的button
元素,您可以使用input.form.submit();
。使用示例
或者
虽然读取
input.form
/button.form
属性不使用 jQuery,但它至少是跨浏览器的,因为 jQuery 本身就是这样做的。好处:此方法允许您避免依赖 ASP.NET 内部生成的表单 ID,而无需添加任何额外的服务器端接线。
If you know that this code will be triggered by an
input
orbutton
element within the ASP.NET form, or if you can select a knowninput
orbutton
element within the ASP.NET form, you can useinput.form.submit();
.Usage examples
or
Although reading the
input.form
/button.form
property does not use jQuery, it is at least as cross-browser since jQuery itself does this.Benefit: This method allows you to avoid dependence on the form ID generated by ASP.NET's internals without having to add any extra wiring server-side.