2011-06-11 33 views
0

C#沒有得到編號在Mozilla Firefox

HtmlButton btnSave = new HtmlButton(); 
btnSave.ID = "btnSave" + i.ToString(); 

btnSave.Attributes.Add("onClick", "javascript:return SubmitSave(" + btnSave.ID + ");"); 

的JavaScript

function save(e) 
{ 
    var getId=e.id; 
} 

我不是在IE

越來越ID在Mozilla Firefox,布特它的做工精細
+2

請顯示更多代碼 – 2011-06-11 10:18:40

+0

發佈輸出html以及。 – 2011-06-11 10:26:05

+0

我正在創建動態控制。沒有Html代碼 – MayureshP 2011-06-11 10:27:29

回答

1

您可以通過Client ID代替作爲ClientID的IDbtnSave.ClientID是處理這種情況的最佳選擇。

btnSave.Attributes.Add("onClick", "javascript:return SubmitSave(" + btnSave.ClientID + ");"); 

function save(e) 
{ 
    var getId=e; // Now you have Client ID, you can use directly instead getting through e.id 
} 
+0

MayP目前的代碼爲什麼只能在IE中工作? – 2011-06-11 10:36:44

+0

我不知道爲什麼這是在IE瀏覽器,而不是Mozilla,我猜它不能在IE中工作,但我什麼都不能說,因爲我沒有VisualStudio時刻。但我在答覆中提到了這種方法,這是處理這種情況的正確方法。 – 2011-06-11 10:40:00

+0

@Jared;看看這個答案,在這個答案中,MayP正在尋找類似的東西。 http://stackoverflow.com/questions/5948171/perform-b​​utton-click-event-when-user-press-enter-key-in-textbox/5948230#5948230 – 2011-06-11 10:44:36

0

這是因爲您使用的id作爲變量。一些瀏覽器在窗口對象中添加id:s作爲屬性,以便您可以直接訪問它們,但要使其在除少數瀏覽器之外的任何其他瀏覽器中都可以使用,則應使用getElementByID方法來定位該元素。

btnSave.Attributes.Add("onClick", "javascript:return SubmitSave(document.getElementByID('" + btnSave.ID + "'));"); 
+0

在他的情況下,btnSave.ID可能返回btnSave1,類似。如果他正在使用母版頁,並且該ID不正確,他可以使用document.GetelementByID查找,因爲ClientID是處理此類情況的正確選擇 – 2011-06-11 10:49:02

+0

@Muhammad Akhtar:由於代碼在IE中工作(這是將id:s添加到窗口對象的瀏覽器),它不是問題的id。使用ClientID是正確的,但這不是解決這個問題的方法。 – Guffa 2011-06-11 10:58:37