使用查询字符串调用页面时无法访问表单元素

时间:2010-11-05 12:53:49

标签: javascript

我有很多网页,我有以下Javascript

 var inputs = $("body :input");
 for(i=0;i<inputs.length;i++)
 {
  thisObj =inputs[i];// test if the class 'roll' exists
  if (thisObj.getAttribute('type') == 'text')
  {
   params+=thisObj.id + "="+thisObj.value+"&";
  }
 }

如果调用它的页面没有任何标记在URL上的查询字符串元素(即localhost / default.aspx),则它可以正常工作并填充params。

但是,如果从包含url中的查询字符串元素的页面调用它(即localhost / default.aspx?ref = 42),则输入将作为空数组返回,并且params为空。

我知道我可能错过了一些非常明显的事情,但是对于我的生活,我无法弄清楚原因是什么。

编辑:

如果我将代码简化为: -

,则更清楚
var par=''; 
var inputs = $("body :input"); 
par ="c="+inputs.length;

如果url没有GET参数,我得到c = 9,如果url有GET参数,我得到空字符串

1 个答案:

答案 0 :(得分:0)

代码似乎是通过从页面上的各个输入字段收集数据来准备查询字符串(变量params),最有可能是后续重定向到动态生成的URL,其中包含表单数据的形式GET参数。请注意,jQuery选择器"body :input"有效地选择整个页面中可以合理地用于用户输入的所有元素(输入,textarea,select和button,确切地说)。

因此,代码可能用于您所引用的查询字符串所在的页面,而不是读取和使用参数的页面。