jQuery / Javascript无法在动态网页上运行

时间:2015-11-05 13:40:22

标签: javascript jquery

我有一个在静态网页上完全正常运行的脚本,但我不能让它在动态网页上运行。我尝试过的研究中使用了不同的技术,但我仍然无法使用它,所以我正在寻求帮助。

我的剧本:

<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(),但我有什么遗失的吗?

注意:我知道之前在此网站上已经提出了问题。我已尝试在这些解决方案中执行某些步骤,但我仍然无法使此脚本生效。

1 个答案:

答案 0 :(得分:2)

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

试试这个:

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

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