我有一个可以在静态网页上完全正常运行的脚本,但是无法在动态网页上运行。我尝试了与完成的研究不同的技术,但仍然无法使它起作用,因此我正在寻求帮助。

我的剧本:

<script type="text/javascript" src="http://mywebsite.com/js/jquery.min.js"></script>
<script type="text/javascript">
    $(document).ready(function() {

        $(document).on('submit', '#bv-form', function() {

            var data = $(this).serialize();

            $.ajax({

            type: 'POST',
            url: 'notify.php',
            data: data,
            success: function(data) {
                $("#bv-form").fadeOut(500).hide(function() {
                    $(".form-result").fadeIn(500).show(function() {
                        $(".form-result").html(data);
                    });
                });

            }
        });
        return false;
    });
});




形成:

<form method="post" id="bv-form">
    <div class="checkbox form-feedback margin-five m_top_20">
        <!-- checkbox  -->
        <label><input type="checkbox" name="video_title" id="publish" checked value="<?php echo ucwords($row['video_title']); ?>"> <em>"<?php echo ucwords($row['video_title']); ?>"</em> by <b><?php echo ucwords($row['artist_name']); ?></b> is not working</label>
        <!-- end checkbox  -->
    </div>

    <div class="form-group">
        <!-- button  -->
        <button class="btn btn-black no-margin-bottom btn-small no-margin-top" id="submit" type="submit">Send</button>
        <!-- end button  -->
        <input type="hidden" id="id">
        <input type="hidden" id="video_id" name="video_id" value="<?php echo ucwords($row['id']); ?>">
        <input type="hidden" id="artist_name" name="artist_name" value="<?php echo $row['video_title']; ?>">
    </div>
</form>


我正在使用.on(),但是我缺少什么?

注意:我知道此站点上曾有人问过这个问题。我已经尝试按照这些解决方案中的某些步骤进行操作,但是仍然无法使该脚本正常工作。

最佳答案

如果表单是动态的,则意味着它是在页面加载后添加到页面中的,那么提交可能会因为找不到表单而无法触发。

尝试这个:

$(document).find("#bv-form").on('submit', function(){ ... });


这会在DOM中搜索ID,而不是假设它在那里

08-19 03:23