javascript строчная onchange

1

Надеюсь, ты поможешь мне с небольшой проблемой. Я никуда не денусь.

Если запись сделана в поле 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>
  • 0
    вызвать toLowerCase () ???
  • 0
    .toLowerCase()
Показать ещё 2 комментария
Теги:
onchange
keyup
lowercase

2 ответа

3
Лучший ответ

Ты почти понял это. Вам нужно только добавить toLowerCase и replace вызовы функций в вашей строке.

$(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>

EDIT: только для уточнения это решение работает в любой ситуации, когда содержимое изменяется.

Согласно jQuery Docs:

.change()

Для флажков выбора, флажков и переключателей событие немедленно запускается, когда пользователь делает выбор с помощью мыши, но для других типов элементов событие откладывается до тех пор, пока элемент не теряет фокус.

  • 0
    Просто дополнительная заметка. Это решение не работает, если вставить текст с помощью правой кнопки мыши. Это работает, если вставить через CTRL-V
0

переменные


Предположим, что это ваше сообщение

Как настроить Windows 10

Я думаю, вы пытаетесь сделать свой URL-адрес example.com/how-to-setup-windows-10.

Код


Попробуйте этот код, я думаю, он будет работать.

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню