display none清除文本区域值

问题描述:

<textarea>的内容似乎会被清除,只要我用display : none将其隐藏并通过删除display再次显示它。当textarea再次显示时,有没有办法保留原始值?display none清除文本区域值

+3

你可以发布?正如你所看到的,这不是正确的行为:http://jsfiddle.net/g9gSf/ – j08691 2012-02-28 21:57:44

也许尝试使用jQuery或其他JavaScript框架。 在jQuery的情况下,显示和隐藏功能对你来说是神奇的。

<textarea cols="5" rows="5" id="test">Test</textarea> 
<input type="button" value="switch on" onclick="$('#test').show();"> 
<input type="button" value="switch off" onclick="$('#test').hide();">​ 

那么,如果你只是删除显示器,可能会有一些故障。如果要使其再次可见,则必须将其设置为内联(如果是内联元素)或块(如果是块元素)。 css-Property显示可以设置为none | inline |块。因此,如果您将显示设置为“无”,则应将其重新设置为内联,而不是随后移除该属性。

这里是一个解决方案W/O jQuery的:你的代码或的jsfiddle

<textarea id="test">TEST</textarea> 
<input type="button" value="switch on" onclick="showTest();"/> 
<input type="button" value="switch off" onclick="hideTest();"/> 

<script type="text/javascript"> 
    function hideTest() { 
    var field = document.getElementById('test'); 
    field.style.display = 'none'; 
    } 

    function showTest() { 
    var field = document.getElementById('test'); 
    field.style.display = 'inline'; 
    } 

​</script>​​​​​​​​​​​​