您好,我在按下键enter
时创建了自动完成功能。这部分有效。但我也有一个动态add
按钮来复制此输入。重复输入使用表单帖子。但是,现在当我按enter
我的页面刷新并且我不想要这个因为我的自动完成功能不再有效。我对如何修复它的想法?这是我输入的代码:
<td>
<span id="numpro" >
<form method="post" action="">
<input onclick="addRow(this.form);" type="button" value="+" />
<input type="text" id="name" name="add_name"onkeypress="return handleEnter(event, this, 'task');"/>
<?php
if($result!=false && mysqli_num_rows($result)>0){
while($product = mysqli_fetch_array($result)):
?>
<p id="oldRow<?=$product['id']?>">
<input type="text" name="name<?=$product['id']?>" value="<?=$product['name']?>" />
<input type="checkbox" name="delete_ids[]" value="<?=$product['id']?>"> Mark to delete</p>
<?php
endwhile;
}
?>
</form>
</span>
</td>
以下是enter
密钥的代码:
//------------------COMPLETE CLIENT DESC DIMANCHE----------------------
function handleEnter(e, obj, field){
if (e.keyCode == 13 || e.which == 13){
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
tempArrayInJS = JSON.parse(xmlhttp.responseText);
$("#client1").val( tempArrayInJS[0]['cliName']);
$("#desc1").val( tempArrayInJS[0]['proDescription']);
}
}
xmlhttp.open("GET","completeclient.php?q="+obj.value,true);
xmlhttp.send();
}
//Enter was pressed, handle it here
这是我的自动填充代码:
//------------------AUTO COMPLETE NUMÉRO DE PROJET----------------------
$(document).ready(function(){
//-------AUTO COMPLETE DIMANCHE PROJET-----
$("#name").autocomplete({
source:'getautocomplete.php',
minLength:1
});
如果我忘了向你展示一些代码,请告诉我。或者,如果我不清楚,我会尝试更好地解释。谢谢你的帮助!
答案 0 :(得分:0)
我会检查浏览器控制台以查看那里发生了什么样的请求,但我认为使用enter浏览器还提交了围绕你的html的表单:
<form method="post" action="">
尝试将e.preventDefault()
置于不触发默认输入键行为。