由onchange触发的jquery表单提交而不是提交

时间:2014-04-04 15:57:35

标签: jquery ajax onchange

我在一个页面上有几个表单,它们都包含2个隐藏元素和一个复选框。更改复选框后,我想通过ajax提交表单并写入我的数据库。

形式:

<form method="post" id="deadline_form<?php echo $aid; ?>" action="" style="width: 20px;" class="pull-left" >
    <input type="hidden" name="aid" value="<?php echo $act_array['activity']['aid']; ?>">
    <input type="hidden" name="uid" value="<?php echo $uid; ?>">
    <input class="deadline_on" type="checkbox" name="deadline_on" id="deadline_on" value="1" <?php if($deadline_checked){ echo "checked='checked'"; } ?> >
</form>

JQuery的:

$('.deadline_on').on('change', function(){
    var id=$(this).parent("form").attr('id');
        console.log(id);
        var id_complete = '#'+id;
    $(id_complete).submit(function(){
        console.log(id_complete);
        dataString = $(id_complete).serialize();
        $.ajax({
            type: "POST",
            url: "/activities/edit_deadline_preference",
            data: dataString,
            success: function(data){

            }
            });
        return false; //stop the actual form post !important!
    });
});

JQuery(提交)的L5之前的所有内容都有效,之后无效。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

我希望您不需要:$(id_complete).submit(function(){

这就够了:

$('.deadline_on').on('change', function(){        
    dataString = $(this).parent("form").serialize();
    $.ajax({
            type: "POST",
            url: "/activities/edit_deadline_preference",
            data: dataString,
            success: function(data){    
            }
    });            
});