我在JavaScript表单验证中遇到了一些问题。可选字段验证
我在我的HTML代码中有一些可选字段。提交时,他们不需要填写,但如果用户提供一些输入,他们必须经过验证。例如,我有一个可选的电话号码字段。如果用户提供输入,那么我需要检查它们是否都是数字。
我该怎么做?
我在JavaScript表单验证中遇到了一些问题。可选字段验证
我在我的HTML代码中有一些可选字段。提交时,他们不需要填写,但如果用户提供一些输入,他们必须经过验证。例如,我有一个可选的电话号码字段。如果用户提供输入,那么我需要检查它们是否都是数字。
我该怎么做?
你只需要调用验证码如果字段值满足一些先决条件,在这种情况下:
var fieldValue = document.getElementById("someInput").value;
if(fieldValue.length > 0) {
if(someValidationFunction(fieldValue)) alert("Field is invalid");
}
你:如果字段的值(通过测试的字符串值的length
财产选中)可以将您的自定义方法作为回调提交给您的表单中的提交操作
<form onSubmit="return customValidation()>
在该方法中进行验证。
function customValidation()
{
//code to test fields
fieldToValidate = document.getElementById("field-id")
//validate the field
}
如果您需要更安全的话,您不能使用其他答案;你不应该用JavaScript来做这件事,因为如果用户由于某种原因在浏览器中关闭了浏览器(或者他们故意关闭它),那么表单将不会被验证。相反,你需要在服务器上使用PHP来完成。在表单发送给您的服务器上需要获取与表格($_GET['phonenumber'];
)一起发送的查询字符串,并查看它是否是一个数字(int intval (mixed $phonenumber)
)。这应该返回NaN,如果它不是数字。
什么阻止你使用HTML5自己的验证?
<input type="tel" pattern="[0-9]+" />
没有JavaScript需要,可以在所有现代浏览器上运行。
有关安全性的说明:请不要依赖客户端验证来解决安全问题,因为它们可以被平凡地禁用。所有的验证都应该在服务器端完成也。
http://html5pattern.com/ – 2014-08-31 10:18:58