Jquery 使用JSFIDLE在取消选择时从输入中删除值
我成功地实现了我想要的,但我似乎无法理解以下内容背后的逻辑: HTML,例如: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,
<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());
});