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

时间:2009-03-03 23:04:39

标签: html xhtml standards

我有一个这样的表格:

<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> 

在一个浏览器中愉快地提交用户按下来自其中一个字段的输入,而在另一个浏览器中则没有。奇怪的是,如果我删除第二个字段,它可以同时使用。

我的问题是 - 是否可以使用没有显式提交元素的表单?我真的很喜欢这种行为。

6 个答案:

答案 0 :(得分:6)

没有明确提交是糟糕的用户体验。在过去的十年中,您的典型最终用户已经学会了一套网站表单交互原则。也就是说,您可以在字段之间切换,您可以选择许多复选框,并且您只需单击按钮即可实际提交数据。

我过去曾尝试使用JavaScript自动更新表单,我收到了无数用户投诉。他们想要一个按钮,或者他们不相信它有效。因此,在这种特殊情况下,我保持表单的工作原样,但添加了一个真正没有做任何事情的提交按钮。他们很高兴。

这些天我只是用普通的提交按钮构建我的表单。用户不仅期望它,而且可以在非JS浏览器之间实现更清晰的渐进增强。

答案 1 :(得分:2)

使用没有提交元素的表单肯定是可能的,特别是如果您使用JavaScript事件提交表单。我强烈建议您使用onkeypress事件来检测被按下的“输入”键,而不是依赖于浏览器只是接受“输入”键,如果您制作一个没有提交的表单,以使其与浏览器兼容。

但是,我认为省略某种提交按钮是不好的形式。 (它不一定是“提交”类型的输入,可以是“按钮”或您单击的图像。)只需要一个标准,人们可以通过按钮填写提交表单,并且您正在服用离开,这可能会使许多习惯按钮的用户感到困惑。它绝对违反了Don't Make Me Think的原则,提出了另一种形式的规范。

答案 2 :(得分:1)

这不是一个好主意。你自己指出了原因 - 它并不适用于所有浏览器。而且,这不是人们所期望的,所以它可能会让人感到困惑。

答案 3 :(得分:0)

这取决于你对“ok”的意思。

如果你的意思是有效的(x)html,那么根本没问题,但在用户方面,这是一个可用性问题。但它也取决于您网站的目标受众。如果是技术精湛的人,那就没关系。

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

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

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

答案 4 :(得分:0)

Submitting a form on 'Enter' with jQuery?

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

答案 5 :(得分:-1)

如果您想要提交两个按钮,这两个按钮会产生两种不同的行为。你能做到的就是这样:

     

或者您可以将表单提交到function1()或function2()