javascript - jquery 检查字符串是否已从文本区域中删除并从选择中删除选项

标签 javascript jquery

嗨,我正在使用 jquery 来检测是否已将 @ 符号插入到文本区域中。当检测到这种情况时,将向服务器发出 ajax 请求以检索用户列表。然后,用户单击用户名,它将被附加到文本区域,如下所示,并添加到选择中,以便我可以将此注释通知相关用户;

$(document).on('click', '#fetchUsers li',function(e){
        var username = $( this ).text();
        var user_id = $( this ).attr('data-user-id');
        $('textarea.addNote').val(function(_, val){return val + username; });
        $(this).parent('ul#fetchUsers').html('');

        $('#addAUsertoNote')
            .append($("<option></option>")
                .attr("value",user_id)
                .text(username));

    });

现在我遇到的问题是,如果我从文本区域中删除字符串@userone,则该选项值会出现在选项列表中,但它不应该出现在选项列表中。有谁知道是否以及如何检查用户名是否已被删除并将其从选项组中删除?

最佳答案

您可以尝试这种方法,添加 keydown 事件并每次检查每个用户是否在文本区域中:

$('textarea.addNote').keydown(function() {
    var self = $(this);
    var note = self.val();
    var users = $('#addAUsertoNote option').map(function() {
        return $(this).text();
    }).get();
    users.forEach(function(user) {
        if (!note.match("@" + user)) {
            $('#addAUsertoNote option:contains(' + user + ')').remove();
        }
    });
});

关于javascript - jquery 检查字符串是否已从文本区域中删除并从选择中删除选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34693783/

相关文章:

javascript - JavaScript 字符串连接中 null 的影响

java - 如何使用 JSP 更新 XML 文件

javascript - 如何防止使用 jQuery 单击弹出窗口时关闭弹出窗口?

javascript - jquery 对话框

javascript - 检查多个较短的字符串,JS?

php - Facebook 个人资料图像并将其下载到我的网络目录

javascript - 不会在 map 上显示城市和类似内容

javascript - 当我删除父元素本身时,是否需要删除 DOM 元素的所有子元素?

javascript - jQuery 点击 td 切换复选框

jquery - 具有自定义外观的跨浏览器内容滚动