确保表单永远不会使用javascript或jquery提交

时间:2011-01-25 22:14:07

标签: javascript jquery html forms

我有一种情况,我使用自定义jQuery插件来劫持表单提交。然后,表单中的数据通过jsonp跨域ajax调用发送到另一台服务器。此数据无法发布到托管表单的服务器上。

我的问题是,如果客户端禁用了javascript,我的插件不会阻止表单提交。即使没有启用JavaScript,我如何确保表单永远不会提交?

我考虑的一个选项是使用javascript来写出表单标签。

<script type="text/javascript">
    document.write('<form id="myForm">');
</script>

<!-- form html here  -->

<script type="text/javascript">
    document.write('</form>');
</script>

然后将插件应用于表单

$('#myForm').myplugin();

虽然这会起作用,但考虑到第三方客户将要使用我的插件,它似乎有点hacky,而我宁愿不指示他们的表单必须以这种方式编写。如果我不得不这样做的另一种可能性是强制他们将我的插件附加到包含该表单的div,然后在div周围自动注入表单标记并继续正常。然而,有些东西告诉我,必须有一个更简单的方法。

4 个答案:

答案 0 :(得分:1)

如果您不打算进行标准表单提交,请删除<form>标记,将其替换为<DIV>标记。您只需要将提交绑定到任何有效元素,例如span。并做一个$('#myDiv').myPlugin();

答案 1 :(得分:1)

也许我完全错过了你想要完成的事情。但你不能简单地不使用: input type =“submit”value =“提交表格”/

改为使用: input type =“button”action =“myValidate();” value =“提交表格”/

听起来你不想让没有Javascript的人能够提交表格。所以我认为这将是一个简单的解决方案。

答案 2 :(得分:0)

<form onSubmit="return false">

如果禁用了javascript,我们不确定这是否有效...

答案 3 :(得分:0)

我的解决方案是......如果Javascript被禁用,不要破坏。在您的服务器上放置一个脚本,用于处理提交表单时的案例。然后让该脚本向外部服务器发出请求并将适当的响应发送回用户。这可能包括一个提示,Javascript将增强他们对您的网站的享受。