[英]jQuery add/remove text from input string
我有一个将文本添加到输入框中的功能。 基本上,您单击一个div,然后通过onclick =“ addvalue(“ Name”)”激活该功能
function addvalue(newdate){
var input = $("#datestobeexcluded");
input.val(input.val()+","+newdate);
};
但是我真正需要做的是检查输入值中的字符串,如果不存在,则添加文本,然后删除,如果字符串中已经存在文本,则将其删除。
我目前在jquery上做得不好。 先感谢您
var input = $("#datestobeexcluded");
if(input.val().search(newdate) >= 0)
{
input.val(input.val().replace(newdate,''));
}
else
{
input.val(input.val()+","+newdate);
}
并且如果您多次出现:
input.val(input.val().replace(/newdate/g,''));
您可以在RegExp
使用includes
:
var input = $("#datetobeexcluded");
input.val(input.val().includes(newdate) ? input.val().replace(new RegExp(newdate, "g"), "") : `${input.val()},${newdate}`);
您可以使用jQuery样式的点击监听器替换点击绑定中的内联。
然后,您可以使用下一个代码。
const $input = $('#your-input') $('.extra-option').click(function() { const inputString = $input.val() const content = inputString ? inputString.split(',') : [] const stringToAdd = $(this).html() const stringIndex = content.indexOf(stringToAdd) if (stringIndex === -1) { content.push(stringToAdd) } else { content.splice(stringIndex, 1) } $input.val(content.join(',')) })
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input id="your-input" type="text" /> <div class="extra-option">Name</div> <div class="extra-option">Company</div> <div class="extra-option">Address</div>
首先,您需要弄清楚如何提供单击的元素值。 您的方法肯定是错误的,因为您需要在单击时绑定函数,而返回的是undefined。 出于测试目的,我使用innerText。
第二,您需要检查您的字符串是否包含单击的div字符串。 为了简化此逻辑,我使用了按定界符分割,然后使用条目数组进行管理。
最后一步,您需要更新输入值。
我想这就是全部。
如果您有任何问题,请告诉我。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.