我正在尝试理解(http://www.w3schools.com/js/js_form_validation.asp)上的函数并使用getElementsByClassName重新编写它(下面)以查找我添加到HTML输入标记的类属性。我是Javascript的新手,我不明白为什么我必须在下面的语句末尾添加.value(W3示例)或.view(我的示例)以使其工作。据我所知,函数中的第一个语句是查看文档,并将变量X分配给具有class属性reqname的任何输入字段。
谢谢。
我的功能:
function validateForm()
{
var x=document.getElementsByClassName("reqname").view;
if (x==null || x=="")
{
alert("First name must be filled out");
return false;
}
}
W3的功能:
function validateForm()
{
var x=document.forms["myForm"]["fname"].value;
if (x==null || x=="")
{
alert("First name must be filled out");
return false;
}
}
答案 0 :(得分:3)
表单元素(如输入字段)通常具有value
,即输入到输入字段中的字符串。
通过指定.value
,他们明确检查元素的内容是否为空。没有它,他们会检查元素本身是否为空,即元素是否存在。
您的代码还有一些其他问题。你正在使用的.view
没有意义。此外,getElementsByClassName
会返回元素列表,而不是单个元素,因此您将无法立即访问其.value
。
如果你知道只有一个元素,你可以查看getElementsByClassName("reqname")[0].value
。如果要验证所有“reqname”字段的值,则必须遍历集合并单独检查每个项目:
var elements =document.getElementsByClassName("reqname");
for(var i = 0, l = elements.length; i < l; i++) {
var x = elements[i].value;
if(x == null || x == '') {
alert("First name must be filled out");
return false;
}
}
答案 1 :(得分:0)
可能对以下内容有用:
http://tetlaw.id.au/view/javascript/really-easy-field-validation
jQuery的插件
http://bassistance.de/jquery-plugins/jquery-plugin-validation/
答案 2 :(得分:0)
输入字段具有的属性多于它的“值”(即写入其中的文本)。因此,您必须通过在“。”旁边添加名称(在您的情况下为“值”)来说明您要访问的属性。 如果你真的想做表单验证,也一定要在你的php文件中做到! javascript所做的一切都在客户端,所以人们可以 - 基本上 - 忽略它,只是将一些随机数据发送到.php文件。
答案 3 :(得分:-2)
编写
更简单function ValidateForm() {
var x = $("#inputOID").val();
if (x == null || x == "")
alert("......");
return false;
}
所以你的函数是ValidateForm。声明变量x,并通过输入ID从输入中提供值。例如<input id="inputOID" .... />
。所以x将包含输入的值。您验证if是空还是空,如果是,您将提醒用户。
就这样!祝你好运!