没有提交按钮的HTML表单提交

3

I've got a form like this:

<html> 
    <body> 
        <form onSubmit="alert('Just got submitted');">
            <p>
            Hello: <input class="field" type="text"/><br/>
            Goodbye: <input class="field" type="text"/><br/>
            </p>
        </form>
    </body> 
</html> 

在一个浏览器中,当用户在其中一个字段上按下回车键时,表单可以成功提交,但是在另一个浏览器中却无法提交。奇怪的是,如果我删除第二个字段,那么两个浏览器都可以提交表单。
我的问题是 - 没有明确的提交元素的表单是否可行?我真的很喜欢这种行为。

如果您为输入命名,它是否有效? - Andrew Ensley
@Andrew:尊重作者意图意味着如果作者对此有问题,则应恢复到作者。这并不意味着“恢复到Andrew认为该怎么做的任何东西”。 - George Stocker
6个回答

6
没有明确的提交按钮会影响用户体验。在过去十年中,您所服务的一般终端用户已经学会了一套网站表单交互原则。即,您可以在字段之间切换,可以选择多个复选框,并且必须单击按钮才能实际提交数据。
我以前曾尝试使用JavaScript开发自动更新表单,但是收到了无数用户的抱怨。他们想要一个按钮,否则就不相信它正在工作。因此,在这种特殊情况下,我保持了表单最初的工作方式,但添加了一个实际上并没有做任何事情的提交按钮。他们很满意。
如今,我只需使用普通的提交按钮来构建表单。不仅用户期望使用提交按钮,而且它可以在非启用 JS 的浏览器之间提供更清洁的渐进式增强。

2
“有表单没有提交按钮”是完全可行的,尤其是当您使用JavaScript事件来提交表单时。我强烈建议您使用onkeypress事件来检测“Enter”键是否被按下,而不是依赖于浏览器仅接受“Enter”键,如果您制作了一个没有提交按钮的表单,则使它跨浏览器兼容。
然而,我认为不加提交按钮是不好的做法。(它不一定是类型为“submit”的输入,可以是“button”或您点击的图像。) 通常人们填写的表单都要通过一个按钮进行提交,您却把这个按钮去掉了,这可能会让很多习惯于按钮的用户感到困惑。这违反了不要让我思考的原则,因为它提供了与正常情况不同的选择。

1
"...这是不好的形式..." 哈哈!你真有趣。 :) - Tyson

1

这不是一个好主意。你自己指出了原因 - 它在所有浏览器中都不能正常工作。此外,它也不是人们所期望的,可能会让人感到困惑。


0

使用jQuery在“Enter”上提交表单?

此外,我会将按钮留在表单中,但使用JavaScript隐藏它($('#submit').hide())。这意味着,如果用户禁用了脚本或使用其他设备,他将看到提交表单的默认方式。


0

这取决于你对“ok”的理解。

如果你的意思是有效的(x)html,那么这完全没有问题,但对于用户来说,这是一个可用性问题。但这也取决于你网站的目标受众。如果是面向技术精通的人群,那么就没问题。

你可以创建一个像这样的输入按钮:

<input type="button" onclick("doSomething()") />

doSomething() 是 Javascript 中的一个函数,它可以将您的表单数据发送到服务器端脚本。这样,您就不需要提交行为。


-1
如果你想要有两个按钮,当提交时生成两种不同的行为。你可以做的是像这样:
或者你可以将表单提交放在function1()或function2()中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接