我有一个 ASP.NET 页面,上面有两个部分......一个用于注册,一个用于登录......每个都有一个提交按钮。
当我在页面的登录部分时,我希望在按下“Enter”时第一个“提交”按钮启用。在注册部分,我希望第二个“提交”按钮在按下“Enter”时启用。
问题:我需要可以访问该页面(即我不允许使用 javascript)
有人有什么想法吗?:) :(
如果两个提交的形式不同(听起来好像它们应该在这种情况下),则没有问题。任何理智的浏览器都会从您所在的表单中获取提交按钮。
只要这两个表单实际上是单独的表单,这应该会自动发生。换句话说,应该有两个独立<form>
的元素,一个用于登录,一个用于注册。
编辑:
浏览器根据具有焦点的表单确定“按下”哪个提交按钮。如果在一个表单中有多个提交按钮,这听起来像这里的情况,浏览器将使用它找到的第一个提交按钮进行提交。我知道没有办法绕过这种行为。
您实际上是在问如何使用单个表单执行两个操作之一,这会破坏表单模型:表单旨在对单个 URL 执行操作(GET 或 POST)。我可以想到一种解决这种行为的方法,但它并不是特别干净。
建议:
我对我正在谈论的内容做了一个粗略的绘图。您基本上在表单顶部添加了两个单选按钮,一个用于登录,一个用于注册。在这些下方,您有两个字段集,一个带有登录字段,一个带有注册字段。该表单有一个提交按钮。
点击查看全尺寸图片 http://img220.imageshack.us/img220/5923/boardc.th.jpg
没有 Javascript 的用户将检查相应的单选按钮并填写相应的字段集。使用 Javascript 的用户有更好的体验。如果登录单选按钮被选中,隐藏注册字段集。如果选中了注册单选按钮,则隐藏登录字段集。
通过适当的造型,您可以使它看起来不错。您的逻辑必须检查单选按钮字段的值以确定要采取的操作,但这应该不会太难。
鉴于单一形式的限制,这就是我能想到的。这可能根本不是一个可行的解决方案,具体取决于您的其他限制,但这就是我所拥有的。祝你好运,如果您对我所讨论的内容有任何疑问,请告诉我!
将控件包装在面板中,然后将面板的默认按钮属性设置为所需的按钮。
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.panel.defaultbutton.aspx
它们的形式相同... :(
那么,你不能改变它吗?除非它们共享字段,否则它们不必采用相同的形式。“登录”和“注册”对我来说听起来像是两个不同的功能。
没有纯 HTML 方式来指定默认提交按钮,更不用说在不同情况下使用不同的默认按钮了。
包含 JavaScript 本身并不会使您的页面无法访问。只要它仍然可以在关闭 JavaScript 的情况下工作,就可以了。