2010-08-14 65 views
2

我用type =“button”替换了我的表单上的type =“submit”,以防止用户按下回车时的表单提交。这是否会阻止提交表单全部浏览器?输入发送HTML表单没有提交

+4

为什么要这样做?可能对用户非常恼人... – darma 2010-08-14 00:52:53

+0

因为:1-他们必须填写某些字段才能使用提交。 2-表单是基于令牌的。添加回车应该添加一个令牌,而不是提交整个表单。所以它对用户来说实际上是有帮助的 – babonk 2010-08-14 01:13:30

+1

这并不能减轻这个*是可怜实用性的事实。在这种情况下你应该做的是使用Javascript来做到这一点。 – 2010-08-14 10:32:40

回答

1

按下回车键后,有些浏览器仍然会自动提交。如果您真的需要一些适用于此的功能,则可以使用onSubmit事件处理程序来实现自己的筛选。

然后,您可以通过从Javascript实际调用提交方法来强制提交表单。当然,你需要设置一个特定的标志来让你的提交经历这个时间。 (使用jQuery)

//flag definition 
var form_is_ready = false; 

//event handler for the form submission 
$('#your-form-id').submit(function() { 
    if (!form_is_ready) { 
    return false; 
    } 
}); 

//function you have to call to actually submit the form 
function do_submit() { 
    form_is_ready = true; 
    $('#your-form-id').submit(); 
} 

这只是一个快速写入的代码片段。你应该适应它以适应你的需求。

2

这是一个糟糕的可用性决定,应该避免。

+0

看到我上面的评论解释了为什么它是有道理的输入不被用来提交 – babonk 2010-08-14 03:35:30

+0

@babonk它没有意义,并会刺激我,如果我试图使用你的表格 – Chris 2010-08-14 11:23:49

+1

它可以是有道理的......特别是在非常-标准格式。话虽如此,大多数表单应尽可能使用默认功能。 – Jarrett 2012-09-04 21:47:22