使用Javascript进行基本表单验证

时间:2012-09-27 14:08:34

标签: javascript forms validation

我正在尝试理解(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;
  }
}

4 个答案:

答案 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)

答案 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是空还是空,如果是,您将提醒用户。 就这样!祝你好运!