【问题标题】:Pressing ENTER in <textarea> to break a line在 <textarea> 中按 ENTER 来换行
【发布时间】:2018-10-14 11:51:30
【问题描述】:

我认为自己是网络开发的初学者,并且 我在 textarea 中输入换行符时遇到了一些问题。

我的代码如下所示(纯 javascript)

function upldNot(){ 
    xhttp = new XMLHttpRequest();
    var d = document.getElementById("textarea-input").value;

    d = d.replace(/(\n|\r\n)/g, "<br>$1");   // added this line to break lines

    xhttp.onreadystatechange = function(){
        if(this.readyState == 4 && this.status == 200){
            document.getElementById("output").innerHTML = this.responseText;
        }
    };
    xhttp.open("GET","upload_not.php?d="+d, true);
    xhttp.send();
}

我的目的是将输入数据从 textarea 发送到 php.file,该文件将其上传到数据库,然后显示表中的所有行。 (这很好用)

此外,当输入数据包含“输入”时,必须将其读取为换行符。我的代码在 IE 中完美运行,但在 Chrome 中却不行。 Chrome 返回以下消息:

[弃用] 其 URL 包含已删除空格(\n\r\t)字符和小于字符(&lt;)的资源请求将被阻止。请从元素属性值等位置删除换行符并编码小于字符,以便加载这些资源。详情请见https://www.chromestatus.com/feature/5735596811091968

我什至不确定这到底是什么意思。 您能否提供一些提示或大多数浏览器支持的其他解决方案?

非常感谢,非常抱歉这个愚蠢的问题。

【问题讨论】:

    标签: javascript google-chrome textarea enter


    【解决方案1】:

    您添加到 url 的内容包含 html 元素 &lt;br/&gt;,根据 chrome 错误,它不允许从浏览器发送的 url 请求中包含此类内容。

    您可以在将其添加到 url 之前尝试 encodeURI(d)。

    xhttp.open("GET","upload_not.php?d="+encodeURI(d), true);

    【讨论】:

    • 非常感谢您的回答!!有了它,它就可以完美运行了!
    猜你喜欢
    • 2013-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-17
    • 2011-11-12
    • 2016-08-17
    相关资源
    最近更新 更多