Javascript 在同一页面中使用livesearch文本框两次

Javascript 在同一页面中使用livesearch文本框两次,javascript,php,html,css,ajax,Javascript,Php,Html,Css,Ajax,我在我的网页中使用了下面的Livesearch代码,它在学生表单中运行良好。但在第二个文本框Staff表单的索引页中,live search不起作用。我希望这是由于使用了JQuery函数,使用了属性ID,这对于两个输入文本框都是一样的。是否可以在第二个文本框中使用实时搜索而不更改整个代码 提前谢谢 livesearch.js index.php livesearch.php 您的目标元素具有id-在第一行: $('#college').keyup(function(e) { ... } 如果您

我在我的网页中使用了下面的Livesearch代码,它在学生表单中运行良好。但在第二个文本框Staff表单的索引页中,live search不起作用。我希望这是由于使用了JQuery函数,使用了属性ID,这对于两个输入文本框都是一样的。是否可以在第二个文本框中使用实时搜索而不更改整个代码

提前谢谢

livesearch.js

index.php

livesearch.php


您的目标元素具有id-在第一行:

$('#college').keyup(function(e) { ... }
如果您将其切换到一个类,例如.livesearch,并将该类添加到HTML元素中,那么脚本自然会处理多个元素

HTML中的ID应该是唯一的,而类可以应用于多个元素

更新:您可能还需要切换此行:

var关键字=$.trim$'college'.val

请改为引用此项:

var关键字=$.trim$this.val


这将确保当您在该元素上检测到keyup时,脚本将对该特定元素进行操作。

谢谢您的回复。我尝试了你的解决方案,但没有解决我的问题。在这种情况下,我建议在JSFIDLE或codepen中重新创建这个。在无法运行的情况下对代码进行故障排除是极其困难的。
<div id="student">
     <form action="/" method="post">
        <div class="field-wrap">
        <input type="text" id="college"  placeholder="College Name" required 
        autocomplete="off"/>
          <ul id="college_list"></ul>
        </div>
           <button type="submit" class="button button-block"/>Get 
            Started</button>
      </form>   

    <!-- Another Division similar to previous one-->

    <div id="staff">
      <form action="/" method="post">
        <div class="field-wrap">
        <input type="text" id="college"  placeholder="College Name" required 
        autocomplete="off"/>
          <ul id="college_list"></ul>
        </div>
           <button type="submit" class="button button-block"/>Get 
            Started</button>
      </form>   
$parts = explode(' ', $keyword);
    $p = count($parts);

    $sql = "SELECT * FROM colleges WHERE college_id is not null"; 
    for($i = 0; $i < $p; $i++) {
    $sql .= " AND college_name LIKE '%$parts[$i]%'";
    }

    $query = $pdo->prepare($sql);
    $query->bindParam(':keyword', $keyword, PDO::PARAM_STR);
    $query->execute();
    $list = $query->fetchAll();
    foreach ($list as $rs) {

    // Highlight the written text
    $college_name = highlight($keyword,$rs['college_name']);

    // add new option
    echo '<li onclick="set_item(\''.str_replace("'", "\'", 
    $rs['college_name']).'\')">'.$college_name.'</li>';
    }
$('#college').keyup(function(e) { ... }