Thursday, February 17, 2011

[jQuery] 如何使用jQuery選取Asp.net控制項ID

今天解一個小問題,順手把解法記下來。

問題是這樣子的,有個按鈕發現不能按了,看了一下原因,是因為 ASP.NET 在產生頁面時會將你設的 ID 加字,比如說你原本有個 Input 控制項的 ID 是叫 InputHere ,到真正頁面時ASP.NET可能會幫你變成 ctl00_ML_InputHere,於是原本使用 $('#InputHere')就找不到這東西了。

因為這頁面年代久遠,所以用最小修改的方式去修這問題。

在ASP.NET頁面上,可以使用 $("*[id$='ID']") 去選取名為ID的控制項,但是因為要改的地方不少,所以我打算用比較簡單的方法去做。

這邊我先設一個 function 來幫我做這件事
function $$(id, context) {
    var el = $("#" + id, context);
    if (el.length < 1)
        el = $("*[id$=" + id + "]", context);
    return el;
}

然後我要找 ID 叫 InputHere 的控制項時,就可以只使用 $$('InputHere') 去抓了,方便許多。

No comments:

Post a Comment