【问题标题】:Form Textarea Data Not Being Replaced on Submit提交时未替换表单 Textarea 数据
【发布时间】:2016-12-07 10:32:51
【问题描述】:

在提交带有 textarea 数据的表单时,我正在尝试用换行符替换新行。

以下作品:

$("form").on('submit', function (e) {
    $(".description").html($(".description").val().replace(/\r\n|\r|\n/g, "<br />"));
});

仅当我不更改 textarea 的值时。

为了澄清,当我在 textarea 中编辑文本时,这将停止工作。使它与新输入的文本一起工作的唯一方法是提交表单,再次单击编辑,然后重新提交表单,而不对 textarea 中的文本进行任何更改。有人可以解释为什么会发生这种行为吗?

HTML:

<textarea class="form__item__input description" name="description"></textarea>

【问题讨论】:

  • 也添加你的html
  • 它不完全清楚你想做什么。仅在提交时替换或在每次更改文本时替换?
  • @Alon_A 提交时。

标签: javascript jquery html forms textarea


【解决方案1】:

$("form").on('submit', function(e) {
  e.preventDefault();
    
  $(".description").val($(".description").val().replace(/\r\n|\r|\n/g,"<br />"));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<form>

  <textarea class="description" rows="10">
    Hi
    Click
    me 
    please
  </textarea>
  <input type="submit" value="submit" />
</form>

【讨论】:

  • 如果我在 textarea 中编辑文本,这不会添加换行符。
  • 所以这意味着当你在编辑过程中输入换行符时,它应该添加
    ?
  • 是的,但仅在我提交时。
  • @Frisbetarian 尝试更新答案。我希望这有帮助。您还可以编辑现有输入。
  • @Frisbetarian html() 不会给你“最新”的脏值,而是初始 DOM 元素状态的值。 val() 克服了这一点。
猜你喜欢
  • 2019-03-15
  • 1970-01-01
  • 2012-12-15
  • 2012-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-25
  • 1970-01-01
相关资源
最近更新 更多