2

我试图了解 (http://www.w3schools.com/js/js_form_validation.asp) 上的函数并使用 getElementsByClassName 对其进行返工(如下)以查找我添加到 HTML 输入标记的类属性。我对 Javascript 很陌生,我不明白为什么必须在下面的语句末尾添加 .value (W3 示例)或 .view (我的示例)才能使其正常工作。据我了解,函数中的第一条语句说查看文档,并将变量 X 分配给具有类属性 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

4 回答 4

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;
   }
}
于 2012-09-27T14:12:05.683 回答
0

可能对以下有用:

http://tetlaw.id.au/view/javascript/really-easy-field-validation

jQuery插件

http://bassistance.de/jquery-plugins/jquery-plugin-validation/

于 2012-09-27T14:14:31.623 回答
0

输入字段的属性不仅仅是它的“值”(这是写入其中的文本)。因此,您必须通过在名称(在您的情况下为“值”)附加“。”来说明要访问的属性。如果你真的想做表单验证,也一定要在你的 php 文件中做!javascript 所做的一切都在客户端,因此人们可以 - 基本上 - 忽略它,只需将一些随机数据发送到您的 .php 文件。

于 2012-09-27T14:17:21.437 回答
-2

写起来更简单

function ValidateForm() {
    var x = $("#inputOID").val();
    if (x == null || x == "")
        alert("......");
    return false;
}

所以你的功能是ValidateForm。您声明一个变量 x,并通过输入 ID 从输入中给出值。例如<input id="inputOID" .... />. 所以 x 将包含输入的值。您验证是否为空或为空,如果是,您将提醒用户。就这样!祝你好运!

于 2012-09-27T14:16:44.760 回答