我用几行代码来创建表单,然后在代码中我通过 JSON 使用 AJAX $.post
。
我的 html 表单脚本代码创建一个简单的表单,然后按“enviar(提交)按钮,它将打印我的变量数据。我正在使用 $.post
调用一个名为 bados 的文件.php,您将在本消息后面看到。
我的印象是,通过单击“enviar”按钮使用 jQuery preventDefault()
不会发生任何事情,但它会带至其他页面显示我的变量中的数据(我是在我的 dados.php 中执行 print_r($_POST);
和 var_dump($_POST);
。
首先,我可能错误地认为 jQuery preventDefault()
或其他(您将在我的代码中看到注释)“阻止”用户/我单击“enviar”后的任何操作“(提交)按钮;什么都不会发生,但仍然打印我的变量数据。
第二/最后,我的代码有问题。
请检查我的 HTML 表单和 dados.php(php 代码)的以下脚本代码;在此先,我非常感谢您的帮助:
我的 HTML 表单/JSON:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<title></title>
</head>
<body>
<div id="result">texto do cliente</div>
<form id ="myform"action="dados.php" method="post">
<table>
<tr>
<td>Nome:</td>
<td>
<input type="text" id="first_name" value="" maxlength="25" />
</td>
</tr>
<tr>
<td>Sexo:</td>
<td>
<input type="radio" id="Sexo" value="Masculino" /> Masculino
<input type="radio" id="Sexo" value="Feminino" /> Feminino
</td>
</tr>
<tr><td>Profissão:</td>
<td>
<select id="dropdown">
<option value ="administrador">Administrador</option>
<option value ="analista">Analista</option>
<option value ="designer">Designer</option>
<option value ="gerente">Gerente</option>
</select>
</td>
</tr>
<tr>
<td>
<input id="submit" type="submit" value="enviar"/>
</td>
</tr>
</table>
<script type="text/javascript">
$(function(){
/* attach a submit handler to the form */
$("input[type='submit']").click(function(e) {
/* stop form from submitting normally */
e.preventDefault();
//e.stopImmediatePropagation();
//e.stopPropagation();
$.post(
'dados.php', {firstname: $('#first_name').val(), sexo: $('#sexo').val(),
profissão: $('#dropdown').val()}, function(data) {
console.log(data);
//$('#result').html(data)
//$('#result').html(data.firstname)
//$('#result').html(data.sexo)
//$('#result').html(data.profissão)
}, 'json');
});
</script>
<script>
</script>
</body>
</html>
我的 DADOS.PHP:
//ECHO $_POST['dropdown'];
print_r($_POST);
var_dump($_POST);
非常感谢。
马可·兰扎
最佳答案
您没有关闭$(function(){
。
您需要在末尾添加另一个});
。
关于php - jQuery e.preventDefault() 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10236521/