jquery ajax没有提交

时间:2014-07-25 07:27:36

标签: javascript jquery ajax

我有这段代码:

<script>
            $(document).ready(function() {
                $("#edit-my-username").click(function() {
                    $("#my-username").html('<input type="text" id="new-username" value="<?php echo $my_username; ?>"> <button class="my-button small-btn" id="submit-my-username">Submit</button>');
                });
                $("#submit-my-username").click(function() {
                    var user = "<?php echo $userid; ?>";
                    var edit_field = "username";
                    var edit_content = $("#new-username").val();
                    if(edit_content !== ''){
                        $.ajax({
                            type: "POST",
                            url: "edit-user.php",
                            data: {user: user, field: edit_field, content: edit_content},
                            cache: false,
                            success: function(html){
                                $("#my-username").html(html);
                            }
                        });
                    }return false;
                });
            });
        </script>

我无法弄清楚它为什么不提交。单击按钮时,Firebug看不到XHR。我对JS / jQ并不完全自信..我哪里错了?

5 个答案:

答案 0 :(得分:1)

由于您动态添加#submit-my-username,因此点击处理程序在页面加载时未绑定。

$("#submit-my-username").click(function() {

将点击处理程序更改为以下

$("body").on( "click", "#submit-my-username", function() {

答案 1 :(得分:0)

当您通过javascript添加html时,在您的情况下jquery,单击事件(以及任何其他触发事件)不起作用。 您必须使用 on 事件或 live 事件,但不推荐使用最后一个事件。

例如:

$("#submit-my-username").live('click'. function()
$("#submit-my-username").on('click', function()

答案 2 :(得分:0)

页面加载时,jquery ready funciton执行。部分&#39;提交&#39;不存在,所以&#39; $(&#34;#submit-my-username&#34;)。click(function(){}&#39;脚本不起作用。

我认为你应该在&#39;提交&#39;中添加onclick事件。明显。

如:

<button class="my-button small-btn" id="submit-my-username" onclick='func()'>Submit</button>

答案 3 :(得分:0)

在您的情况下,您应该使用.live()方法,但现在不推荐使用它。而不是你可以使用.on()

$("#my-username").on('click', '#submit-my-username', function(event) {}

答案 4 :(得分:-1)

很抱歉错误解释了您的问题。可以让用户使用jquery提交表单。

$("form").submit(function(){
//your code
});

希望这是你问题的答案。