Php 按enter键的ajax表单
//更新Php 按enter键的ajax表单,php,jquery,ajax,Php,Jquery,Ajax,//更新 $('#codice_prodotto').on('keyup', function(e) { if (e.which === 13) { e.preventDefault(); $('#cerca_prodotto').trigger('click'); } }); 这是实时工作的,但如果我按Enter键,脚本将在domain/?codice\u prodotto=val中重定向我 有什么解决办法吗 //结束更新 $('#co
$('#codice_prodotto').on('keyup', function(e) {
if (e.which === 13) {
e.preventDefault();
$('#cerca_prodotto').trigger('click');
}
});
这是实时工作的,但如果我按Enter键,脚本将在domain/?codice\u prodotto=val中重定向我 有什么解决办法吗 //结束更新
$('#codice_prodotto').on('keyup', function(e) {
if (e.which === 13) {
e.preventDefault();
$('#cerca_prodotto').trigger('click');
}
});
我遇到ajax请求问题,这是索引页:
<script>
$(document).ready(function() {
$("#cerca_prodotto").click(function(){
var dati = $("#form-cerca-prod").serialize();
$.ajax({
type: "POST",
url: "product/show_prod.php",
data: dati,
dataType: "html",
success: function(msg){ $("#risultato").html(msg); },
error: function(){ alert("Ricerca fallita, riprovare..."); }
});
});
});
</script>
<form id="form-cerca-prod">
<input name="codice_prodotto" type="text" placeholder="Codice Prodotto" id="codice_prodotto">
<br><br>
<input type="button" id="cerca_prodotto" value="Cerca">
</form>
<div id="risultato">
</div>
$(文档).ready(函数(){
$(“#cerca_prodotto”)。单击(函数(){
var dati=$(“#form cerca prod”).serialize();
$.ajax({
类型:“POST”,
url:“product/show_prod.php”,
资料来源:达蒂,
数据类型:“html”,
成功:函数(msg){$(“#risultato”).html(msg)},
错误:函数(){alert(“Ricerca fallita,riprovare…”);}
});
});
});
还有这个产品/show_prod.php
<?php
include "../config/config.inc.php";
$cod=urldecode($_POST['codice_prodotto']);
$q=mysql_query("SELECT * FROM prodotto WHERE id='$cod'");
if(mysql_num_rows($q)<1)
echo "Nessun prodotto trovato!";
else{
$p_id=mysql_result($q,0,"id");
$p_descr=mysql_result($q,0,"descrizione");
$p_prezzo=mysql_result($q,0,"prezzo");
$p_prezzo=number_format($p_prezzo,2,',','.');
?>
<br><br>
<div style="border: 1px solid #e9e9e9; padding: 6px; border-radius: 5px;">
<table border="0" align="center" style="color: #fff;">
<tr>
<td align="right">
Codice :
</td>
<td align="left">
<b><? echo $p_id; ?></b>
</td>
</tr>
<tr>
<td align="right">
Nome :
</td>
<td align="left">
<code><? echo $p_descr; ?></b>
</td>
</tr>
<tr>
<td align="right">
Prezzo :
</td>
<td align="left">
<b>€ <? echo $p_prezzo; ?></b>
</td>
</tr>
<tr>
<td align="center" colspan="2" style="padding: 7px;">
Quantità: <input type="number" min="6" value="6" name="quantita" style="width: 40px;"><br><button type="submit" id="agg_prodotto"><img src="img/cart.png"> Aggiungi al carrello</button>
</td>
</tr>
</table>
</div>
<?
}
?>
密码:
诺姆:
序言:
&欧元;
Quantità;:
如果我点击按钮,脚本就可以运行了!如果我输入代码并按键盘上的enter键,脚本将无法工作
如何解决此问题?将此添加到您的表单中:
<input type="submit" />
这就是在回车时触发自动提交的原因。因为您的表单没有提交到任何url。您也可以绑定Enter键来触发AJAX请求。就像单击事件一样。我相信将脚本更改为此应该可以:
$('#codice_prodotto').on('keyup', function(e) {
if (e.which === 13) {
e.preventDefault();
$('#cerca_prodotto').trigger('click');
}
});
$(document).ready(function() {
$("#cerca_prodotto").click(function(){
var dati = $("#form-cerca-prod").serialize();
$.ajax({
type: "POST",
url: "product/show_prod.php",
data: dati,
dataType: "html",
success: function(msg){ $("#risultato").html(msg); },
error: function(){ alert("Ricerca fallita, riprovare..."); }
});
});
$("#codice_prodotto").keyup(function(event){
if(event.keyCode == 13){
$("#cerca_prodotto").click();
}
});
});
不久前我玩过这个,如果submit按钮被隐藏,它将不起作用,因此您不能使用display:none
。你必须在屏幕外进行绝对定位(比如顶部:-10,左侧:-10,宽度:1,高度:1,溢出:隐藏,位置:绝对)@f.ardelian你可以使用可见性:隐藏
是的,但在这种情况下,您必须记住元素仍将在布局中使用空间。对于否决此选项的人(我将其设置为1,现在为0),这是解决问题的最佳方法。将提交按钮作为表单的一部分比在不需要时使用JavaScript更有意义。如果表单最终有一个
@f.ardelian-这是基于问题中的代码,它与其他元素不起作用,因为它是按ID针对代码中唯一的输入元素,因此,即使是另一个输入也会破坏它,或者其他任何东西,但这并不重要,因为它解决了OP的问题,并且是发布代码的最简单修复方法。可能是什么、应该是什么、可能是什么等都不重要。这是实时工作的,但如果我按enter键,脚本将在domain/?codice\u prodotto中重定向我=val@user2078421-这可以解决,编辑答案。我通过添加“onSubmit='return false;”来解决它