Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 使用JSFIDLE在取消选择时从输入中删除值_Jquery_Input_Click - Fatal编程技术网

Jquery 使用JSFIDLE在取消选择时从输入中删除值

Jquery 使用JSFIDLE在取消选择时从输入中删除值,jquery,input,click,Jquery,Input,Click,我成功地实现了我想要的,但我似乎无法理解以下内容背后的逻辑: HTML,例如: <input id="field-one" type="text" /> <ul class="clicks"> <li>15</li> <li>20</li> <li>30</li> </ul> })) 我已经设法添加了数字,因为你点击他们。我想要实现的是能够在取消选择数字时删除它们 例如,如果我点击15,

我成功地实现了我想要的,但我似乎无法理解以下内容背后的逻辑:

HTML,例如:

<input id="field-one" type="text" />
<ul class="clicks">
<li>15</li>
<li>20</li>
<li>30</li>
</ul>
}))

我已经设法添加了数字,因为你点击他们。我想要实现的是能够在取消选择数字时删除它们

例如,如果我点击15,我只想删除15,依此类推

正如您所看到的,我正在检查所选的类,并在所选的类出现时执行代码,但我现在真的想不出任何其他解决方案,非常感谢您的帮助,谢谢


更好的方法是选择类的所有元素,并在每次单击时将其值合并到输入中。我很久没有使用jQuery了,所以可能我打破了每个语法,但想法就在那里;)

使用
Array.indexOf()
Array.splice()

$('.clicks li')。在('click',function()上{
$(this.toggleClass('selected');
变量值=$('.clicks li.selected').map(函数(){
返回$(this.text();
}).get()
$(“#字段一”).val(values.join(“,”))
});
。单击{
填充:0;
}
李先生{
光标:指针;
列表样式:无;
显示:内联块;
}
.选定{
背景:AAAAA;
}

  • 十五
  • 二十
  • 三十

谢谢您的回答:谢谢您的回答:D@Novakinify快乐的编码伙伴
$('.clicks li').bind('click', function(){
$(this).toggleClass('selected');

if($(this).hasClass('selected')) {
var numbers = $(this).html();
var joinNumbers = $('input#field-one').val().replace(/^,|,$/g, '').split(',');

joinNumbers.push(numbers);

$('input#field-one').val(joinNumbers.join());
} else {



}
$('.clicks li').bind('click', function(){
  $(this).toggleClass('selected');

  var inputText = "";
  $(this).parent.find('.selected').each(function(li) {
    inputText += (inputText == "" ? "" : ", ")+li.html();
  }
  $('input#field-one').val(inputText);
});
$('.clicks li').bind('click', function(){
    $(this).toggleClass('selected');
    var numbers = $(this).html();
    var joinNumbers = $('input#field-one').val().replace(/^,|,$/g, '').split(',');
    var index = joinNumbers.indexOf(numbers);
    if (index > -1) joinNumbers.splice(index, 1);
    else joinNumbers.push(numbers);

    $('input#field-one').val(joinNumbers.join());
});