簡體   English   中英

jQuery從輸入字符串中添加/刪除文本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM