可选的字段验证

时间:2014-08-31 08:12:02

标签: javascript html forms validation

我在JavaScript表单验证方面遇到了一些问题。

我的HTML代码中有一些可选字段。提交时,他们不需要填写,但如果用户提供了一些输入,则必须进行验证。例如,我有一个可选的电话号码字段。如果用户提供输入,那么我需要检查它们是否都是数字。

我怎么能这样做?

4 个答案:

答案 0 :(得分:1)

如果字段值满足某些前提条件,则只需要调用验证代码,在这种情况下:如果字段有值(通过测试字符串值的length属性进行检查):

var fieldValue = document.getElementById("someInput").value;
if( fieldValue.length > 0 ) {

    if( someValidationFunction( fieldValue ) ) alert("Field is invalid");
}

答案 1 :(得分:1)

什么阻止您使用HTML5自己的验证?

<input type="tel" pattern="[0-9]+" />

不需要JavaScript,适用于所有现代浏览器。


关于安全性的说明:请不要依赖客户端验证来解决安全问题,因为它们可以被轻易禁用。所有验证都在服务器端完成。

答案 2 :(得分:0)

您可以将自定义方法绑定为表单中提交操作的回调

<form onSubmit="return customValidation()>

在方法中进行验证。

function customValidation()
{    
    //code to test fields
    fieldToValidate = document.getElementById("field-id")
    //validate the field
}

答案 3 :(得分:0)

如果您需要更安全,则无法使用其他答案;你不应该用JavaScript来做这件事,因为如果用户出于某种原因在他们的浏览器中关闭它(或者他们故意将其关闭),那么表单仍然不会被验证。相反,你需要在服务器上使用PHP。在发送表单的服务器上,您需要获取使用表单($_GET['phonenumber'];)发送的查询字符串,并查看它是否为数字(int intval ( mixed $phonenumber ))。如果它不是数字,则应返回NaN。