【问题标题】:JavaScript check if page contain a formJavaScript 检查页面是否包含表单
【发布时间】:2014-09-06 23:59:23
【问题描述】:

我创建了一个 JavaScript,它插入到我处理的任何网页的 head 标记中,应注意验证该页面是否包含表单元素,如果是,请返回 id 和 name 参数的值.

//Check if page contain a form
var elementF =  document.getElementsByTagName('form');
var txt = "";
for (var i=0; i<elementF.length; i++)
    {
  txt = txt + elementF.elements[i].value + "<br>";
    }
console.log("ElementF: "+txt);

我在包含或不包含表单元素的页面中测试了代码,但结果始终相同:

未捕获的类型错误:无法读取未定义的属性“0”

如何检查表单元素是否存在??

【问题讨论】:

    标签: javascript jquery html forms dom


    【解决方案1】:

    用一个简单的$("form")来使用JQuery怎么样

    纯javascript版本将使用querySelectorAll,例如:

    document.querySelectorAll("form")

    【讨论】:

    • 如果可能,我更喜欢使用 javascript
    • @almal jquery 是你的标签之一
    【解决方案2】:

    正如Dalorzo 在他的回答中所说,您可以像这样使用jQuery:

    $('form')
    

    或者,您可以使用querySelectorAll

    document.querySelectorAll('form');
    

    【讨论】:

    • with document.querySelectorAll('form');控制台返回:未捕获的类型错误:未定义不是函数-
    • 你的浏览器/版本是什么?
    • 您确定错误来自document.querySelectorAll 调用吗?
    • 现在控制台写入:ElementF: [object NodeList] 但我如何查看表单的 ID 和名称?
    • 哦,好吧,它是一个类似对象的数组,这意味着你可以用经典的 for 循环遍历它,它有一个长度属性。
    【解决方案3】:

    如果你碰巧需要支持 IE

    document.getElementsByTagName("form").length > 0
    

    【讨论】:

      【解决方案4】:

      只是一个您可以使用的函数的简单示例。确保在“文档就绪”函数中调用它:

      function getForm()
      {
          if($("form").length) 
              return $("form");
          else
              return false;
      }
      
      $( document ).ready(function() {
          var my_form = getForm();
          if(my_form !== false) 
              alert("found form with the id: " + my_form.prop("id"));
          else
              alert("no form found");
      });
      

      【讨论】:

        猜你喜欢
        • 2011-07-15
        • 2011-06-19
        • 1970-01-01
        • 2012-03-26
        • 2014-12-25
        • 2019-07-14
        • 2010-10-12
        • 1970-01-01
        • 2023-03-09
        相关资源
        最近更新 更多