從快速測試我確實似乎是,雖然如果單獨使用,它不會拋出一個錯誤,這是不可能改變的元素的ID,如在這個小測試:
function doGet() {
var app = UiApp.createApplication().setTitle('Button Test');
return app.add(app.createTextBox().setId('tbox').setName('tbox').setText('tbox')
.addKeyPressHandler(app.createServerHandler('inspectBox'))).add(
app.createButton('Change').addClickHandler(app.createServerHandler('btnClick')));
}
function inspectBox(e) {
var p = e.parameter;
var app = UiApp.getActiveApplication();
return app.add(app.createLabel('id: '+p.source)).add(
app.createLabel('name: '+(p.tbox ? 'tbox' : p.txt1 ? 'txt1' : 'not found')));
}
function btnClick() {
var app = UiApp.getActiveApplication();
app.getElementById('tbox').setId('txt1');
//app.getElementById('tbox').setName('txt1');
return app;
}
後來,如果你評論setId
行並取消註釋setName
,然後在文本框中鍵入一個字符,你會看到名稱改變。如果使用例如setText
繼續處理元素,則setName
調用將正常工作。對於setId
來說這不是真的,如果你在元素上嘗試任何東西,那就失敗了。
無論如何,正如其他人所評論的,你有這樣的要求確實很奇怪。我想你應該找到另一種方式(可能更好)來做你想做的事(你沒有描述過)。
什麼是錯誤? – Srik
錯誤是:'遇到錯誤:發生意外錯誤' – Ram
似乎沒有意義更改dom項目的ID或名稱。你爲什麼想這麼做?奇怪。 –