【问题标题】:javascript lowercase onchangejavascript小写onchange
【发布时间】:2025-12-15 02:10:01
【问题描述】:

我希望你能帮我解决一个小问题。我哪儿也去不了。

如果在字段 post_title 中进行了输入,则应将字符自动复制到字段 post_uri 中。这行得通。

现在所有字母都应该自动小写了,空格应该用 - 字符代替。

我该怎么办?

  $(function() {
    var $post_title = $('#post_title');
    var $post_uri = $('#post_uri');

    function onChange() {
      $post_uri.val($post_title.val());

    };
    $('#post_title')
      .change(onChange)
      .keyup(onChange);

  }); 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<form>
  <input type="text" name="post_title" id="post_title">
  <input type="text" name="post_uri" id="post_uri">
</form>

【问题讨论】:

  • 调用LowerCase() ???
  • 是的,我知道... var $post_title = post_title.toLowerCase();不工作
  • var $post_title = post_title.replace(' ',/-/g).toLowerCase()

标签: javascript onchange lowercase keyup


【解决方案1】:

你几乎明白了。您只需要在您的字符串上添加toLowerCasereplace 函数调用。

$(function() {
    var $post_title = $('#post_title');
    var $post_uri = $('#post_uri');

    function onChange() {
      var val = $post_title.val().toLowerCase().replace(/\s/g, "-");     
      $post_uri.val(val);

    };
    $('#post_title')
      .change(onChange)
      .keyup(onChange);

  });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<form>
  <input type="text" name="post_title" id="post_title">
  <input type="text" name="post_uri" id="post_uri">
</form>

编辑:只是为了澄清,这个解决方案在任何修改内容的情况下都有效。

根据jQuery's Docs

.change()

对于选择框、复选框和单选按钮,当用户使用鼠标进行选择时会立即触发该事件,但对于其他元素类型,该事件会延迟直到元素失去焦点。

【讨论】:

  • 只是一个附加说明。如果通过鼠标右键单击粘贴文本,此解决方案将不起作用。如果通过 CTRL-V 粘贴,它确实有效
【解决方案2】:

变量


假设这是您的帖子标题

如何设置 Windows 10

我认为您正在尝试将您的网址设置为 example.com/how-to-setup-windows-10

代码


试试这个代码,我认为它会起作用。

var space_url = $("#post_title").val().replace(" ", "-");
$("#post_url").val(space_url.toLowerCase());

【讨论】: