我有一些網頁上,我有如下一段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)它工作正常,並填充參數。
但是,如果它是從URL中包含querystring元素的頁面調用的(即localhost/default.aspx?ref = 42),則輸入將作爲空數組返回並且params爲空。
我知道,我可能已經錯過了一些非常明顯的,但對於我,我不能找出病因是什麼生活。
編輯:
更清晰,如果我的代碼簡化爲: -
var par='';
var inputs = $("body :input");
par ="c="+inputs.length;
我得到C = 9如果URL沒有一個GET參數和一個空字符串,如果該URL有一個GET參數
我怎麼看不到上面的代碼可以通過GET參數的影響。參數設置時,您的ASP頁面的行爲是否有所不同?這個表單是否存在於HTML源代碼中呢? – 2010-11-05 12:56:34
GET參數不執行任何操作。我最初添加它以確保頁面在調試javascript代碼時真正刷新。這導致了上述錯誤。刪除GET參數並刷新頁面導致腳本運行正常,因此問題是可重現的。 – 2010-11-05 13:04:29
稍微偏離主題,但你可知道,你也可以做到以下幾點:$(「體:輸入[類型=‘文本’]」) – Iain 2010-11-05 13:14:43