【问题标题】:How to validate forms in old browsers?如何在旧浏览器中验证表单?
【发布时间】:2015-10-15 20:17:14
【问题描述】:

我需要一种在新旧浏览器中验证表单的方法。

这是我的代码:

<form name="myForm">
    <input type="text" name="contactname" placeholder="Name" required>
    <input type="email" name="contactemail" placeholder="Email" required>  
    <input type="number" name="contactphone" placeholder="Phone Number" onkeypress='return event.charCode >= 48 && event.charCode <= 57'>  
    <button type="submit">SEND</button>
</form>

此代码在支持 HTML5 的浏览器中运行良好,但在 Internet Explorer 8 等旧版浏览器中无法运行。 所以我尝试在提交按钮中添加onclick="validateform()"

function validateform() {
    // Support for old browsers
    var x = document.forms["myForm"]["contactname"].value;
    // if z is filled

    var y = document.forms["myForm"]["contactemail"].value;
    // if y is an email and it is filled

    var z = document.forms["myForm"]["contactphone"].value;
    // if z is a number
}

但是在新的浏览器中它验证了 2 次,这很烦人。 那么实现支持旧浏览器的验证的正确方法是什么?

【问题讨论】:

  • 是的,在我看来,在这种情况下使用 polyfill 是最好的解决方案。这样,无论您的应用运行哪种浏览器,您都可以使用最新的 w3c 内容。
  • 什么是好的 polyfill 库?
  • 你只能坚持 JS 验证,这将适用于所有浏览器..

标签: javascript html twitter-bootstrap validation


【解决方案1】:

检查浏览器是否支持 HTML5 表单验证然后验证:

typeof document.forms["myForm"]["contactname"].checkValidity == 'function'

如果为真则不需要验证(浏览器支持验证)否则验证。

【讨论】:

    【解决方案2】:

    如果浏览器不支持 HTML5 表单验证,则通过 jQuery 进行验证,请参阅演示 - Jquery validation demo

    【讨论】:

      猜你喜欢
      • 2012-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-02
      • 1970-01-01
      相关资源
      最近更新 更多