2011-12-29 50 views
1

我有一個網格和一個textarea.When我點擊從網格中的一行,在textarea控件中我放了一些信息,我希望這個textarea在頁面的前面,因爲我的網格有多行,我的textarea在頁面上。 爲textarea的定義是這樣的:在javascript,ASP.net應用程序中不工作焦點在textarea上

<textarea id="BodyMessDetailed" cols="20" name="S1" rows="10" readonly="readonly" tabindex="1" > 
    <%=DefaultVal%> 
</textarea> 

在該行定義我稱之爲ShowBodyFunction:

<tr onclick ="javascript:ShowBody('B<% = Model.Id %>')"> .... 

ShowBodyFunction是:

function ShowBody(stringId) { 
      var obj1 
      var obj2 

      obj1 = document.getElementById(stringId); 
      obj2 = document.getElementById("BodyMessDetailed"); 
      obj2.innerText = obj1.innerText; 
      obj2.select(); 
      obj2.focus(); 


     } 

我發現,如果我點擊的行網格和之後,我按backspace應用程序做我想要的,但我不知道如何從應用程序中做出這個。我試着用:onclick =「javascript:ShowBody('B <%= Model.Id%>'); tab char;「 >

但不起作用。有人告訴我哪個是解決方案?

有人可以告訴我如何在調用'ShowBody'函數後調用退格或製表符?

回答

0

嘗試使用innerHTML替換innerText方法並註釋obj.select()方法。如果它在那之後不起作用告訴我。

+0

這種變化之後,它仍然沒有工作:( – Cr123 2011-12-29 10:50:23

0

請作一次變革 - 取代: 「)「> 由:

<tr onclick="ShowBody(this.id)" id="" ..... 

的 'id' 屬性是強制性的 'TR' 元素

希望工程這個。時間:)

+0

不幸的是,不能正常工作。 – Cr123 2011-12-29 11:01:10

0

在功能showBody,評論你之前寫的所有內容和

只需在其中放入一個alert(StringID);並查看函數是否被調用。

如果函數沒有被調用,那麼就沒有辦法查看裏面寫了什麼。

如果在運行時的警告對話框中顯示出來,那麼我們會考慮實際的代碼裏面

ShowBody。我在線 :) 。

+0

功能被稱爲,因爲在該函數中我填充textarea一些文本和文本是正確的,但頁面不會刷新頁面上顯示的區域上我的textarea,我有t o向下滾動,看看裏面寫了什麼 – Cr123 2011-12-29 11:42:44

+0

或者,如果當我運行應用程序,如果它工作正常,當我按下退格鍵或選項卡,你知道如何從代碼模擬此?在我運行ShowBody函數後,如何添加退格或製表符? – Cr123 2011-12-29 12:13:28

+0

這是'ShowBody'功能的問題,永遠不會到達obj2.focus.Thanks很多的幫助!我修改代碼:obj2 = document.getElementById(「BodyMessDetailed」); obj2.focus();現在可以了。 – Cr123 2011-12-29 14:11:52

0

只是利用value其工作正常。

function ShowBody(stringId) { 
    alert(stringId); // showing the output 
    var obj1 = document.getElementById(stringId); 
    var obj2 = document.getElementById("BodyMessDetailed"); 
    obj2.value = obj1.value; 
    obj2.select(); 
    obj2.focus(); 

    obj2.scrollIntoView(); 
} 

semicolonfunction calltr

<tr onclick ="ShowBody('B<% = Model.Id %>');"> 

連接屏幕截圖,供大家參考

enter image description here enter image description here enter image description here enter image description here

+0

該函數在我的應用程序中調用,因爲在該函數中,我用一些文本填充textarea並顯示文本,但textarea不顯示在顯示的頁面部分,我必須向下滾動才能看到什麼是寫在那裏。我有一個列表有很多行,然後我有這個textarea,當用戶點擊一行文本區域完成了一些文本,這必須在第一個屏幕上,用戶現在必須滾動,直到頁面,我希望這個文本顯示在屏幕的可見部分。 – Cr123 2011-12-29 13:37:15

+0

我修改函數ShowBody以這種方式,現在它的確定:函數ShowBody(的StringID){ 變種OBJ1 變種OBJ2 OBJ1 =的document.getElementById(的StringID); obj2 = document.getElementById(「BodyMessDetailed」); obj2.focus(); obj2.innerText = obj1.innerText; obj2.style.borderColor = Purple; }非常感謝 – Cr123 2011-12-29 14:05:23

+0

添加「obj2.scrollIntoView();」在代碼中。更新代碼..試試吧 – 2011-12-29 14:07:24