我遇到的问题是换行符在表单提交路径中消失了。这是我的情景。
我在html网页上有一个多行文本框(2行)。 提交表单时,jquery使用
检索文本框的值$("#txtboxid").val();
当我使用Chrome的调试器检查值时,我可以看到换行符在那里。
(测试数据为a\r\nb\r\nc\r\nd
)
然后让jQuery使用以下JavaScript发布数据。
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"];
任何想法为什么?
答案 0 :(得分:4)
这是预期的行为:您从多行<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();
}
答案 1 :(得分:1)
您的数据来自多行文本框,但您正在创建INPUT元素,我想不接受换行符。这可能是一个问题。