php - jQuery e.preventDefault() 不工作

标签 php jquery html json

我用几行代码来创建表单,然后在代码中我通过 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/

相关文章:

javascript - 对于网站 : How do I make an image follow the mouse pointer only in a certain area?

jquery - 如何从jquery返回的html中获取一些数据

jquery - 以编程方式将焦点设置在禁用按钮上不起作用

html - 如果 parent 没有边界, child 就会失去边距

javascript - 保存选择以供以后在 JS 中使用

php - 在 Codeigniter 中根据 id 获取所有记录

php - 如何导出 Moodle 中所有类(class)的所有成绩?

javascript - 如何使用jquery将一个元素转换为2个元素

php - 表单字段已经填写

php - 部分上传,仅上传 header