为什么jQuery的val()strip回车?

时间:2015-10-19 03:43:50

标签: javascript jquery

在jQuery文档中,提到了

  

目前,在textarea元素上使用.val()会从浏览器报告的值中删除回车符。但是,当通过XHR将此值发送到服务器时,将保留回车符(或由不包含原始值的浏览器添加回车符)。可以使用valHook实现此问题的解决方法,如下所示:

  1. 为什么jQuery的val()strip回车?
  2. 似乎在Windows中,textarea换行符由\ n表示。在Mac中,它由\ r表示?如果是这样会剥离\ r导致问题?
  3. 当文档说"通过XHR时,这意味着什么,马车回报会被保留"?

1 个答案:

答案 0 :(得分:0)

我从这个链接http://bugs.jquery.com/ticket/9007得到了这个并且有所了解......

  

当询问textarea元素的值时," .val()"码   从浏览器报告的值中删除所有回车符。

     

但是,当值提交给服务器时,回车   保留(或添加,由不包含在浏览器中的浏览器添加)   原始值),和(自#6876)jQuery确保他们在那里   XHR的序列化版本( XMLHttpRequest 是一种可用于Web浏览器脚本语言的API,例如JavaScript。它用于向Web服务器发送HTTP或HTTPS请求并将服务器响应数据加载回脚本)目的。

     

该领域之间存在差异的问题   " .VAL()"并且实际提交的内容是在提供时提供的内容   有点" maxlength"报告可用字符的工具   textarea,该代码必须考虑到的情况下的差异   回车保留在服务器上(根据我的经验,非常   可能的事)。换句话说,"字符倒计时"一定要拿   考虑到textarea值的事实(如报告所述)   jQuery)包含换行符,然后是它重要的实际长度 -   在数据库或服务器端验证代码 - 更大   新行数量。

     

现在显然这个数学很容易做,而且可能有各种各样的   剥夺那些回车的美德。行为不是   据我所知,清楚地记录在案;它当然不在   " .val()"的描述。我的观察实际上就是这个   许多作者都不知道这种差异   我在上面描述过。

希望这有助于理解这种行为。