我遇到一个问题,换行符沿着表单提交路径消失。这是我的场景。
我在 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/