2013-01-02 44 views
0

我這裏有一個的jsfiddle:http://jsfiddle.net/XM8hG/33/embedded/result/如果附加表格行比前一行更大,如何更改textarea高度?

要查看小提琴,請點擊此處代碼:http://jsfiddle.net/XM8hG/33/

要使用的小提琴,請按以下步驟進行:

  1. 在對開放式網格頂部點擊選擇按鈕3,然後單擊「添加問題」按鈕以追加下表中的行,您可以看到textarea填充表格單元格。

  2. 現在回到頂部點擊打開的網格再次,但這次選擇按鈕26,然後點擊「添加問題」按鈕來追加下表中的行,你可以看到textarea不填充表格單元格。這是因爲它佔用了更多空間並且表格單元格增加了。

現在,如果你刷新小提琴和反向的步驟,使你做第2步中第一則步驟1中,你會看到兩個表格單元格中的文本區域填補行,因爲第一個錶行比第二臺更大行。

但是,爲了能夠實現相反的解決方案,我需要在下面的代碼中包含哪些內容,以便如果上一個錶行較小,那麼textarea應該能夠填充下一行中的表格單元格,如果行更大?

下面是一個被註釋掉的小提琴,以填補textarea的表單元格時選擇變化的主要代碼:

//CHANGE TEXTAREA HEIGHT 
    var _x = $(e.currentTarget); 
    var _y = _x.closest('td.extratd'); 
    var _z = _y.prev(); 

    $('textarea', _z).css('height', '').height(_z.innerHeight()) 
+1

'height:100%'有什麼問題?無論如何,它將填滿整個細胞。 – cimmanon

+0

@cimmanon我的身高:100%在css – user1941871

+0

但是你用JS覆蓋它。 – cimmanon

回答

0

更新您的setWidth()函數來

function setWidth() { 
    $(".textAreaQuestion").each(function(){ 
    var questionCellWidth = $(this).closest(".question").width(); 
    var questionCellHeight = $(this).closest(".question").height(); 
    $(this).css({ 
     "width": (questionCellWidth - 6) + "px", 
     "height": (questionCellHeight) + "px" 
    }); 

    }); 
    } 

http://jsfiddle.net/XM8hG/34/

+0

感謝您的回答 – user1941871