不使用Javascript提交表单

时间:2011-10-17 03:01:03

标签: javascript html forms

我有一个依赖于javascript来执行所有客户端表单验证的表单。如果所有字段都正确填写,则表单通过javascript提交,而不是使用标准的“提交”按钮:

<button name="button" type=button onclick="validateReqFields('mForm', 'username, password, compPassword, firstName, lastName');">Register</button>

document[formName].submit();

如果客户端禁用了javascript,则所有表单验证都在服务器端完成(无论如何,它实际上都会执行,但这并不重要)。问题在于使用具有按钮类型的按钮而不是提交。它适用于javascript,但如果javascript不可用,我该如何解决这个问题呢?如果我使用提交按钮和javascript,那么它会在按下每个按钮时提交表单,并且无法正常工作。

4 个答案:

答案 0 :(得分:4)

type属性更改为submit

<button name="button" type="submit" ... />

答案 1 :(得分:3)

使用提交按钮而不是“按钮”按钮,如果表单无效,则让validateReqFields函数返回false。

如果您愿意,请从validateReqFields中取出提交表单。

这样

  • 如果表单有效,则按钮点击将冒泡,表单将提交
  • 如果表单无效,则javascript将取消按钮点击
  • 如果禁用了javascript,则会将其作为后备提交给服务器

答案 2 :(得分:-1)

在禁用javascript时,使用<noscript></noscript>标记定义“普通”提交按钮。

答案 3 :(得分:-1)

您可以使用<noscript>标记并将上述代码封装为按钮类型作为提交。如果客户端有js,则noscript中的代码将被忽略。