0

我的 html 中有这段代码:

<form>
        <div style="width:530px; height:220px; overflow-y:scroll;">

              <div class="people">
                <label class="checkbox_1" for="1">
                  <img src="1.jpg" />
                  <span>
                    Jolly Bob Monumir
                  </span>
                </label>
                <input type="checkbox" name="people[]" value="1" id="1" />
              </div>

              <div class="people">
                <label class="checkbox_1" for="2">
                  <img src="2.jpg" />
                  <span>
                    Jonathan Monumir
                  </span>
                </label>
                <input type="checkbox" name="people[]" value="2" id="4" />
              </div>

              <div class="people">
                <label class="checkbox_1" for="3">
                  <img src="3.jpg" />
                  <span>
                    Misoury Crow
                  </span>
                </label>
                <input type="checkbox" name="people[]" value="3" id="3" />
              </div>

              <div class="people">
                <label class="checkbox_1" for="4">
                  <img src="4.jpg" />
                  <span>
                    Michael Crow
                  </span>
                </label>
                <input type="checkbox" name="people[]" value="4" class="checkbox_1" id="4" />
              </div>

        </div>                
    </form>

页面加载后应显示整个表单。现在我想要一个输入框,当我在这个框中输入人的名字时,它应该自动让那些包含我输入的字母的名字(带有“人”类的 div)可见。

示例:我键入“Jo”,应显示包含 Jolly Bob Monumir 和 Jonathan Monumir 的 div,而其他应保持隐藏。然后当我输入“Cro”时,Misoury Crow 和 Michael Crow 应该是可见的。等等。我怎样才能用 jquery 做到这一点?提前致谢

更新:我发现了这个,它就像一个魅力!

$('#search-criteria').on('keyup', function(){
    $('div.people').hide();
    var txt = $('#search-criteria').val();
    $('div.people').each(function(){
       if($(this).text().toUpperCase().indexOf(txt.toUpperCase()) != -1){
           $(this).show();
       }
    });
});
4

3 回答 3

0

我认为您正在寻找类似jqueryui的自动完成功能

于 2012-05-19T14:54:46.243 回答
0

我添加了一个input字段,您可以在其中键入:

<input type="text" id="people_name">

和 jQuery 代码是:

$('input#people_name').on('keyup', function() {
  var value = this.value.trim();
    if(value.length) {
        $('div.people span').filter(function() {
            return new RegExp(value, 'i').test($(this).text());
        }).closest('div.people').show();
    } else $('div.people').hide();
});

演示

注意:您可以使用任何自动完成插件。

于 2012-05-19T15:13:44.807 回答
0

更新:我发现了这个,它就像一个魅力!

$('#search-criteria').on('keyup', function(){
    $('div.people').hide();
    var txt = $('#search-criteria').val();
    $('div.people').each(function(){
       if($(this).text().toUpperCase().indexOf(txt.toUpperCase()) != -1){
           $(this).show();
       }
    });
});
于 2012-06-05T19:17:57.787 回答