我有一个可以在静态网页上完全正常运行的脚本,但是无法在动态网页上运行。我尝试了与完成的研究不同的技术,但仍然无法使它起作用,因此我正在寻求帮助。
我的剧本:
<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,而不是假设它在那里