Javascript 使用querystring调用页面时无法访问表单元素
我有很多网页,上面有下面的Javascript代码Javascript 使用querystring调用页面时无法访问表单元素,javascript,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+"&";
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没有get参数,则I get c=9;如果url有get参数,则I get c=9;如果url有get参数,则I get c=9;如果url有get参数,则I get c=9。代码似乎正在通过从页面上的各个输入字段收集数据来准备查询字符串(变量
params
),很可能是后续重定向到动态生成的URL,该URL以GET参数的形式包含表单数据。请注意,jQuery选择器“body:input”
有效地选择了整个页面中可以合理用于用户输入的所有元素(准确地说是输入、文本区域、选择和按钮)
因此,该代码可能用于您引用的查询字符串所在的页面,而不是读取并使用参数的页面。我不知道GET参数会如何影响上述代码。设置参数时,ASP页面的行为是否有所不同?表单是否存在于HTML源代码中?GET参数不起任何作用。我最初添加它是为了确保在调试javascript代码时页面确实被刷新。这导致了上述错误。删除GET参数并刷新页面导致脚本运行正常,因此问题是可重现的。稍微偏离主题,但您是否知道您还可以执行以下操作:$($(“body:input[type='text'])。这对我来说没有任何意义。你试过调试代码吗?我喜欢chrome单步执行代码,但是当查询字符串存在时,jQuery选择器无法返回任何值。如果我将代码更改为par='';变量输入=$(“主体:输入”);par+=“c=“+输入.长度+”&”;如果url没有get参数,我得到c=9;如果url有get参数,我得到一个空字符串。在我看来,您的JS看起来不错(尽管从变量名来看,它似乎是从jQuery上下文复制/粘贴的)。我认为我们需要看到完整的文档(包括服务器端代码)才能在这里提供帮助。
var par='';
var inputs = $("body :input");
par ="c="+inputs.length;