我有一个在静态网页上完全正常运行的脚本,但我不能让它在动态网页上运行。我尝试过的研究中使用了不同的技术,但我仍然无法使用它,所以我正在寻求帮助。
我的剧本:
<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()
,但我有什么遗失的吗?
注意:我知道之前在此网站上已经提出了问题。我已尝试在这些解决方案中执行某些步骤,但我仍然无法使此脚本生效。
答案 0 :(得分:2)
如果表单是动态的,意味着它会在页面加载后添加到页面中,那么提交可能不会触发,因为它无法找到表单。
试试这个:
$(document).find("#bv-form").on('submit', function(){ ... });
这会在DOM中搜索ID,而不是假设它在那里