Javascript Empty check
Javascript Empty check
所以,我有这段代码,但有些东西似乎没有按预期工作。
function validateForm() {
var x = document.forms["reg"]["username","password","first_name","last_name","age","mail"].value;
if (x==null || x=="" || x==0) {
alert("All fields must be filled out");
return false;
}
}
如果我让任何一个字段为空,就会收到警报。除了最后一个。如果我填写了除邮件以外的所有字段,我就可以继续了。如果我只填写邮件,我也可以继续。
为什么它会检查除了最后一个字段之外的所有字段?
或者有没有一种更简单的方法来检查字段是否已填写?(我实际上使用的是PHP,但不知何故if(empty($_POST['username'])
的东西已经不起作用了,所以我想只使用JS,因为它与警报消息一起看起来更好。
您需要将函数分解一点——将字段名放入一个数组中,然后逐个循环。正如评论中所述,不需要进行null检查。
function validateForm()
{
var fields = ["username", "password", "first_name", "last_name", "age", "mail"];
for(var i = 0; i < fields.length; i++)
{
var fieldName = fields[i];
var x = document.forms["reg"][fieldName].value;
if (x == "" || x == 0) {
alert("All fields must be filled out");
return false;
}
}
}
你也应该在你的PHP代码中做同样的验证,因为有人可以很容易地禁用JavaScript,所以数据根本不会得到验证。
您无法在数组中获得全部内容!相反,你需要采取不同的做法。它只使用mail
,因为它是列表中的最后一个。所以,你可以这样做:
x = [];
x.push(document.forms["reg"]["username"].value);
x.push(document.forms["reg"]["password"].value);
x.push(document.forms["reg"]["first_name"].value);
x.push(document.forms["reg"]["last_name"].value);
x.push(document.forms["reg"]["age"].value);
x.push(document.forms["reg"]["mail"].value);
既然已经构建了该数组,就需要检查其中的""
和0
值。您需要将类似PHP的in_array()
的函数编写为JavaScript,以检查空值和0
值。
您可以很高兴地使用jQuery表单验证器插件,而不是所有这些麻烦,而且它可以很好地完成工作。
相关文章:
- $(.class).empty总是缺少一个元素
- Javascript:为什么是构造函数's __proto__属性Empty(){}
- JavaScript check value
- 其中是函数Empty(){}
- new XMLHttpRequest().responseType empty
- check if checkbox:check不起作用,why,jquery
- Javascript Value Check
- check元素内部有一些使用jquery的元素
- 在mocha.js中使用Empty函数
- Empty Array AJAX
- Jquery Post Empty即使发送变量有数据
- .empty() 清除事件
- 如何将 :empty 选择器应用于 XML 文档
- UI - 手风琴在 empty() 和 append() 之后不起作用
- 如何结束.empty()
- Ember.TEMPLATES is empty (ember-cli-htmlbars)
- Angular if ng-repeat multi filter is empty
- Facebook JSON empty objects
- Javascript Empty check
- inputText empty check