enter does not work in textarea in Internet Explor

2019-02-10 03:21发布

问题:

When I press enter in a textarea which has whitespace attribute is set to nowrap through css, it is ineffective. No new line is created. Instread a simple whitespace appears. This is only true in IE8. I Have tried current version of Opera,Chrome and Firefox and I have not encountered such problems. Do you have some solution for this?

Thanks..

I have this:

.gwt-TextArea
{
white-space:nowrap;
}

where gwt-TextArea sets the textarea.

Also, I have tried

.gwt-TextArea
    {
    white-space:pre;
    }

It seems to give the same result.

回答1:

This article says Internet Explorer ignores line breaks with white-space: nowrap.

Their fix is to use white-space: pre. Does that get you your desired behavior?



回答2:

So, the solution is, unfortunately, this -
For Internet Explorer 7, any white-space value other than pre will cause this issue.
For Internet Explorer 8, any white-space value other than pre-wrap will cause this issue.

I have not tried Internet Explorer 9, though.
In case this is happening there as well, just create a blank page with (a doctype and) a <textarea>, open it and press F12. In the console ("Scripts" tab), type console.log(document.getElementsByTagName("TEXTAREA")[0].currentStyle.whiteSpace) and simply use the value that is displayed within the output as the value of the white-space property of the <textarea>.

Update

I tried Internet Explorer 11. In emulation modes since Internet Explorer 7 mode, it behaves like Chrome in quirks mode (meaning, only white-space: normal and white-space: nowrap cause this issue). I guess they (unintentionally?) backported some fix to most of the emulation modes.



回答3:

Does it have to be CSS solution? If not, you could assign attribute wrap="off" for textarea.



回答4:

The available options (found here: Quirksmode.org), are:

  • normal
  • nowrap, IE5.5+
  • pre, IE6+
  • pre-line IE8
  • pre-wrap IE8

It might be worth using white-space: normal (I don't have IE with which to experiment, but I imagine that normal would be available by default if it's possible to alter the state to abnormal).


Edited, with respect to the OP's comment/response.

Are you using a doctype? (I recommend using <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">)

Assuming that you are, is there any chance you could post a link to a demo-page? Or perhaps post your (x)html and css, to see if there's some manner of style-override, or typo, preventing the css being applied?