Svi*_*ish 70 html javascript css validation
通过阅读这篇文章,我发现有一些"无效"和"无效"输入值的伪类.
有没有办法可以将输入字段标记为javascript中的无效/有效?或者,我可以覆盖使用的验证方法吗?
daj*_*vax 126
您可以使用customValidity函数来实现此目的.
如果向字段添加customValidity消息,则该消息将变为无效.当您将消息设置为空字符串时,它将再次变为有效(除非由于其他原因它无效).
field.setCustomValidity("Invalid field."); 会使该字段无效.
field.setCustomValidity(""); 除非HTML5约束失败,否则将使该字段有效.
编辑:有人澄清说您正在寻找 DOM 的“有效”“无效”属性。
我会使用dom_object.setAttribute("isvalid", "true"). 您还可以有一个中央验证功能,每次更新这些属性(并dom_object.getAttribute("isvalid")每次使用)。
您可以在每次元素失去焦点时或在需要时运行此函数。
不完全优雅,但不幸的是现在没有对 javascript 和 HTML5 的“伪”支持。
如果我理解您的问题,您可以使用 Javascript 进行验证。但是,请注意,很容易绕过客户端验证,尤其是 javascript 验证。您永远不应该相信客户端数据,并始终在服务器端进行检查。
例如,我可以通过检查源代码轻松找到元素 ID,然后document.getElementById('some_id').setAttribute('max', new_number)更改最大值(这是您链接中的条目之一)。
有多种方法可以做到这一点,所以我将尝试为您提供通用的习语。
您可以通过执行获取值document.getElementById('form_element_id').value(确保提供name发送到服务器的表单 a和idjavascript 使用的表单)。对于文本区域,您可以使用.innerHTML.
然后你有一个变量的值,有多种方法可以检查它。
例如,您可以执行if (parseInt(my_value) < 0) //error. 您也可以使用正则表达式,我不会全部解释,但您可以从http://www.w3schools.com/jsref/jsref_obj_regexp.asp开始。我知道 w3schools 不是最好的来源,但我发现它是一个不错的起点。
现在是验证部分:添加onsubmit="return validateForm()到您的表单标签中,其中 validateForm() 是执行所有检查的函数。并且该函数仅true在有效时返回,false否则返回。这将覆盖默认验证功能(默认情况下不执行任何操作)。
所以在上面的例子中,//error将被替换为return false. 你也可以做其他事情;例如警告错误然后返回false。您还可以使用 javascript 突出显示无效字段(不确定这是否是您所说的“从 javascript 将输入字段标记为无效/有效”的意思)
当然,如果您不想检查所有字段,则只需在某些字段通过时返回 true。同样,您不应该依赖于此,但是如果您只是为了威慑普通人,那么这是一个简单的解决方案。