Удалить какой-то конкретный текст из ввода? - PullRequest
2 голосов
/ 01 апреля 2012

У меня есть несколько кнопок, каждой из которых назначается класс с номером. Когда я нажимаю на каждую кнопку, число вводится во вход. Если я дважды нажму на эту кнопку, я хочу, чтобы это число / значение было удалено из ввода , но только это число .

Вот мой пример: http://jsfiddle.net/HC5W7/

и это мой код:

$("div").live('click',function() {
  var a = $('input').val();
  var b = $(this).attr('class')
  var c;
  if ( $("input").val().indexOf(b) !== -1  ) {
    // the code to delete the specific number           
    return false
  }

  if ($("input").val().length > 0) {c = ","}else{ c = ""}

  $('input').val(a + c + b);

});​

Ответы [ 2 ]

1 голос
/ 01 апреля 2012

Гораздо проще, если вы думаете о данном списке как о массиве, а не о строке.Просто разбейте строку на запятую, и вы можете выполнять с ней стандартные операции над массивами, чтобы добавлять / удалять элементы , например,

1 голос
/ 01 апреля 2012

Простая замена на регулярное выражение должна сделать трюк:

$("div").live('click',function() {
  var a = $('input').val();
  var b = $(this).attr('class')
  var c;
  if ( $("input").val().indexOf(b) !== -1  ) {
      $("input").val($("input").val().replace(new RegExp(b+",?|,?"+b, ""),""));
           return false;
  }

  if ($("input").val().length > 0) {c = ","}else{ c = ""}

  $('input').val(a + c + b);

});​

Редактировать: ссылка на JSFiddle Fork: http://jsfiddle.net/g6Hn7/

...