javascript - HTML 提交中换行符消失

标签 javascript jquery asp.net html

我遇到一个问题,换行符沿着表单提交路径消失。这是我的场景。

我在 html 网页上有一个多行文本框(2 行)。 提交表单时,jquery 使用

检索文本框的值
$("#txtboxid").val();

当我使用 Chrome 的调试器检查该值时,我可以看到其中存在换行符。

(测试数据为a\r\nb\r\nc\r\nd)

然后,我使用以下 JavaScript 让 jQuery 发布数据。

function postData(to, params) {
    var myForm = document.createElement("form");
    myForm.method = "post";
    myForm.action = to;
    for (var k in params) {
        var myInput = document.createElement("input");
        myInput.setAttribute("name", k);
        myInput.setAttribute("value", params[k]);
        myForm.appendChild(myInput);
    }
    document.body.appendChild(myForm);
    myForm.submit();
    document.body.removeChild(myForm);
}

当我使用 Request.Form 中的 NameValueCollection 检查 ASP.NET 中发布的值时,似乎没有任何换行符或换行符。

eg = string textboxValue = Request.Form["myTextBox"];

有什么想法吗?

最佳答案

这是预期的行为:您正在从多行 <textarea> 获取数据元素并将其放入单行 <input>元素。因此,换行符会丢失。

尝试创建<textarea>元素而不是 <input>元素。例如,使用 jQuery:

function postData(to, params)
{
    var myForm = $("<form>").attr({
        method: "post",
        action: to
    });
    $.each(params, function(key, value) {
        $("<textarea>").attr("name", key).val(value).appendTo(myForm);
    });
    myForm.appendTo("body").submit().remove();
}

关于javascript - HTML 提交中换行符消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6762108/

相关文章:

javascript - 在获取之后和触发更改事件之前更改 Backbone 数据

javascript - 如何在 javascript 和 HTML 中声明全局变量?

jquery - 在动态内容中触发 Fancybox

javascript - HTML 类似命令行的文本框

mysql - 为什么需要标识符?

c# - global.asax 中的 session 检查与 filehandler.ashx 混淆

javascript - 对预检请求的 Angular 响应未通过访问控制检查

javascript - SlickGrid 标题菜单 - 单列多项选择

asp.net - 这两种Authentication Ticket制作方式的区别?

javascript - 如何从 Jquery 中 Alert 框的选中行的文本框中获取数据?