2016-03-09 2 views
3

Я создал сценарий jQuery, добавив/добавив к существующему значению поля ввода. Я делаю это, проверяя, установлен ли флажок, если он есть, добавьте текст, если он еще раз не отмечен, я хочу, чтобы удалил, что текст - не очистить все значение, просто удалите , что небольшая часть value. Я попытался сделать это, заменив добавленное значение ничем, но он не работает.Удалить часть значения поля ввода

Вот мой сценарий;

$(document).ready(
    function(){ 
    $('.checkbox').change(function(){ 
    if ($(this).is(':checked')) { 
     if($('#output').val().indexOf('?') >= 0) { 
     var input = $("#output"); 
     $('#output').val($('#output').val() + '&avatar'); 
     } else { 
     $('#output').val($('#output').val() + '?avatar'); 
     } 
    } else { 
     $('#output').val(value.replace('?avatar', '')); 
     $('#output').val(value.replace('&avatar', '')); 
    } 
    }); 
}); 

Я не лучший в JQuery здесь - я только действительно сделать это, если у меня есть, поэтому я мог бы просто пропустить очевидное здесь.

Вот jsFiddle, включая мой HTML.

Я боролся с этим здесь некоторое время, любая помощь была оценена - спасибо заранее!

ответ

2

В вашей скрипке была ошибка: в вашем контейнере с контейнером также был класс, поэтому он вызывал двойной щелчок.

Также были установлены некоторые другие части, не называемые значения.

https://jsfiddle.net/vws4hpez/1/

$(document).ready(
    function() { 
    $('.checkbox').change(function() { 
     if ($(this).is(':checked')) { 
     console.log('checked'); 
     if ($('#output').val().indexOf('?') >= 0) { 
      var input = $("#output"); 
      $('#output').val($('#output').val() + '&avatar'); 
     } else { 
      $('#output').val($('#output').val() + '?avatar'); 
     } 
     } else { 
     console.log('not'); 
     $('#output').val($('#output').val().replace('?avatar', '')); 
     $('#output').val($('#output').val().replace('&avatar', '')); 
     } 
    }); 
    }); 

* HTML:

<div class="checkboxDiv"> 
    <label> 
    <input id="avatar" type="checkbox" class="checkbox">Player avatar</label> 
</div> 
+1

Удивительный, я был на самом деле просто не хватает очевидного здесь :) Спасибо! –