// Change the value of the outputText field
function setAjaxOutput(){
if(httpObject.readyState == 4){
document.getElementById('maincontent').innerHTML = httpObject.responseText;
}
}
我尝试加载包含此脚本的页面
<script type="text/javascript">
$(document).ready(function() {
alert('dfd');
$("#formAddUser").validate({
rules: {
userImage: {
required: true,
accept: "png|jpg|gif|jpeg"
}
}
});
});
</script>
<div class="content-box">
<div class="content-box-header">
........................
为什么加载页面上的javascript没有执行?谢谢。
答案 0 :(得分:1)
您的问题是innerHTML不会在HTML片段中执行脚本。当你说'element.innerHTML = htmlfragment;'时,它只是添加标签并呈现HTML。脚本标记不会被浏览器呈现为HTML的一部分,因此会被忽略。
您需要使用jQuery.load()而不是jQuery.ajax(),如下所示:
$('#maincontent').load('yourscript.php');
jQuery.load();内部的代码首先将这些标记输出,然后通过innerHTML添加剩余的HTML,然后单独运行标记。您可以在211行左右看到执行此操作的代码here。来自docs:
使用不带后缀选择器的URL调用.load()时 表达式,内容在脚本出现之前传递给.html() 除去。这将在丢弃之前执行脚本块。如果 使用附加到URL的选择器表达式调用.load(), 但是,在更新DOM之前,脚本会被删除, 因而没有被执行。
答案 1 :(得分:0)
首先尝试:
<script type="text/javascript">
alert('dfd');
</script>
然后尝试
<script type="text/javascript">
$(document).ready(function() {
alert('dfd');
});
</script>
并粘贴结果。
答案 2 :(得分:0)
我相信你的表格带有ajax。因此,如果您可以将验证转换为函数,并在ajax加载的内容中调用它,那就更好了。