代码:
<input type="text" name="college_name" id="college_name" placeholder="Search By College Name" >
<div id="box"></div>
<script>
$(document).ready(function() {
$("#college_name").keyup(function() {
$.ajax({
type: "POST",
url: "colleges.php",
data: 'keyword=' + $(this).val(),
success: function(data) {
$("#box").show();
$("#box").html(data);
}
});
});
});
function selectCollege(val) {
$("#college_name").val(val);
college_name = $("#college_name").val();
location.href = "college-details.php?college_name=" + college_name;
$("#box").hide();
}
</script>
college.php
<?php
$tempcollege .= "<a href='#' style='color:#fff;'><li onClick=selectCollege('".$college_name."''".$field."');>".$college_name.$field."</li></a>";
?>
在这段代码中,我创建了一个自动完成框,当我在输入字段上键入时,所有大学都会显示,但是当点击任何大学时,它就不会链接到,即college-details.php。那么,我该如何解决这个问题?请帮助我。
谢谢
答案 0 :(得分:1)
替换
<?php
$tempcollege .= "<a href='#' style='color:#fff;'><li onClick=selectCollege('".$college_name."''".$field."');>".$college_name.$field."</li></a>";
?>
使用
<?php
$tempcollege .= "<a href='#' style='color:#fff;'><li onclick=selectCollege('".$college_name."''".$field."');>".$college_name.$field."</li></a>";
?>
答案 1 :(得分:1)
你们大学里似乎有很多问题。
你可以避免这两种方式。
要么替换href =&#39;#&#39;使用href =&#39; javascript:void(0)&#39;
<?php
$tempcollege .= "<li onClick=selectCollege('".$college_name."''".$field."');><a href='javascript:void(0)' style='color:#fff;'>".$college_name.$field."</a></li>";
?>
或取消事件冒泡并执行&lt; a&gt;的默认行为通过返回false来标记onClick。
<?php
$tempcollege .= "<li onClick=\"selectCollege('".$college_name."''".$field."'); return false;\"><a href='#' style='color:#fff;'>".$college_name.$field."</a></li>";
?>
最糟糕的情况如果你不能编辑college.php,那么将window.event.preventDefault();
添加到selectCollege()函数:
function selectCollege(val) {
window.event.preventDefault();
$("#college_name").val(val);
college_name = $("#college_name").val();
location.href = "college-details.php?college_name=" + college_name;
$("#box").hide();
}
还有另一个错误:selectCollege('".$college_name."''".$field."');
生成代码selectCollege('Some college name''Some field');
,其中包含连续出现的两个撇号。您似乎想要selectCollege('Some college nameSome field');
,所以您还应该将代码修改为selectCollege('".$college_name.$field."');
或selectCollege('".$college_name."'+'".$field."');
答案 2 :(得分:0)
$tempcollege .= "<li><a onclick='callfunction();' style='color:#fff;'>click</a></li>";
When you set click event on <a> tag at time please remove href="#" attribute with href some cases causes browser reload a page and since click event not work.