如何使用jquery查找文本框中是否已有值

时间:2011-08-24 04:26:37

标签: jquery validation

让我们考虑一下我有一个文本框,我可以输入用逗号分隔的用户名。

编辑:详情:

  1. 我附近有一个文本框和一个search_button。

  2. 当我点击搜索框时,会在弹出窗口显示用户列表,附近有一个复选框

  3. 当用户点击复选框并点击提交时,相应的用户名将显示在文本框中。

  4. 我的问题是:我不能再添加两次用户名。那是当我点击我已添加的同一个用户时,它应该抛出一条警告信息,并且不应在文本框中添加相应的名称。

  5. 我的代码如下:

      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 完成此操作。

    任何帮助都会感恩和感激....

    提前致谢...

2 个答案:

答案 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/