让我们考虑一下我有一个文本框,我可以输入用逗号分隔的用户名。
编辑:详情:
我附近有一个文本框和一个search_button。
当我点击搜索框时,会在弹出窗口显示用户列表,附近有一个复选框
当用户点击复选框并点击提交时,相应的用户名将显示在文本框中。
我的问题是:我不能再添加两次用户名。那是当我点击我已添加的同一个用户时,它应该抛出一条警告信息,并且不应在文本框中添加相应的名称。
我的代码如下:
var res_user = '';
// checked username will get
var existing_names = $('#text_box').val();
$('#popups input[type="checkbox"]:checked').each(function() {
res_user = res_user + $(this).parent().next().attr('value') + ', ';
});
if ($("#text_box").length > 0) {
target = $("#text_box").val($("#text_box").val() + ' ' + res_user);
}
Drupal.popups.close();
return false;
如何使用Jquery 完成此操作。
任何帮助都会感恩和感激....
提前致谢...
答案 0 :(得分:1)
尝试在脚本标记中使用此功能:
$(function(){
$('#TextBox').change(function() {
var $current = $(this);
if ($(this).val() == $current.val()
{
alert('duplicate found!');
}
});
});
答案 1 :(得分:1)
您可以使用此代码。它将所有新选择的用户放入一个数组中。然后,它遍历该数组,从每个名称中生成一个正则表达式,并在逗号分隔列表中查找该正则表达式。如果找到了,那么我们就不添加这个。如果找不到,我们添加它。
var selectedUsers = [];
// checked username will get added to selectedUsers array
$('#popups input[type="checkbox"]:checked').each(function() {
selectedUsers.push($(this).parent().next().attr('value'));
});
var currentUsers = $("#text_box").val();
var regex;
for (var i = 0; i < selectedUsers.length; i++) {
// make regex for this selectedUser so we can search to see if it's already there
regex = new RegExp("(^|, )" + selectedUsers[i] + "(,|$)", "i");
// if this username not found in the current string, then we can add it
if (currentUsers.search(regex) == -1) {
if (currentUsers.length != 0) {
currentUsers += ", ";
}
currentUsers += selectedUsers[i];
}
}
// put updated user list back in the textbox
$("#text_box").val(currentUsers);
您可以在此处看到我自己的HTML工作略有修改的版本:http://jsfiddle.net/jfriend00/du6UF/。