我正在尝试使用Javascript将textarea的值保存到cookie中。
当用户输入多行时出现问题。仅保存第一行,而忽略后续指令。
例如
var myText = $('#mytextarea').val();
document.cookie = "mycookie=" + myText + "; path=/;"
如果myText
包含\n
字符(如果用户在textarea字段中输入了多行,则它会执行此操作),则不仅其余行未存储在cookie中,而且{{ 1}}被忽略。
答案 0 :(得分:3)
除了我对转义换行的评论外,MDN cookie documentation在Write a new cookie部分中有以下注释:
cookie值字符串可以使用encodeURIComponent()来确保该字符串不包含任何逗号,分号或空格(在cookie值中是不允许的)。
然后,您可以在读取Cookie值时使用decodeURIComponent()来获取原始文本。
答案 1 :(得分:0)
我要做的是将换行符“ \ n”替换为另一个我确定不会使用的字符,例如“ \”(反斜杠)。
var myText = $('#mytextarea').val();
var myCookieValue = myText.split('\n').join('\\');
document.cookie = "mycookie=" + myCookieValue + "; path=/;"
当您读取cookie时,只需进行反向转换即可:
var cookie = rawValue.split('\\').join('\n');