jquery - 删除输入字段的部分值

标签 jquery html

我制作了一个 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。

我在这里为此苦苦挣扎了一段时间,感谢您的帮助 - 在此先感谢您!

最佳答案

你的 fiddle 有一些错误 - 你的 div 容器也有类复选框,所以导致双击。

还修复了一些其他的部分,没有定义任何所谓的值。

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>

关于jquery - 删除输入字段的部分值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35895662/

相关文章:

jquery - 如何在 select2 选择上启用悬停事件

jquery - 为什么 Chrome 会忽略本地 jQuery cookie?

javascript - Jcrop 裁剪图像无法正常工作,裁剪了错误的部分

javascript - 点击暂停/播放视频 JavaScript 不起作用

javascript - 带有关键帧和 css 变量的 stroke-dashoffset 动画

javascript - 单击时调整大小并返回原始位置

php - HTML/PHP 编码,特殊字符在一台服务器上有效,而在另一台服务器上无效

html - 无论你使用什么分辨率,在屏幕中间保持一个 div

html - 为什么我看不到 Firefox 的日期选择器?

html - 为什么此 HTML 代码在 Outlook(HTML 电子邮件)中没有在中间垂直对齐?