通过AJAX加载时,jQuery脚本无法运行

Chu*_*ess 5 ajax jquery dom

我花了一些时间阅读jquery文档和其他问题。我一生无法弄清楚自己在做错什么。只需将它们放在一起并加载页面,我就能正常工作。但是,当我通过Ajax加载代码时,它不起作用。我通读了一些其他遇到类似问题的人,每个人都说要使用.live,但这对我也不起作用。我究竟做错了什么?

我正在尝试修改表单编码,因此如果选中一个框,它将不会上传文件。

这是通过ajax加载的表单:

<form id="RequestForm" enctype="multipart/form-data" method="post" action="/submit">
Input File: <input name="inputFile" value="" id="inputFile" type="file">
<input name="onDrive" id="change_form" value="1" type="checkbox"> Located on drive
</form>
Run Code Online (Sandbox Code Playgroud)

我也有这段代码。它应该放在原始页面上还是可以放在通过ajax加载的内容中?而且,我必须做些什么才能使其与加载的内容一起使用,因此,选中change_form复选框时,它将更新<form enctype>

<script> 
$(document).ready(function(){
    $('#change_form').click(function() {
    if($('#change_form').is(":checked")){
        // update the apply button to enabled
        $('form#RequestForm').removeAttr('enctype');
    } else {
        $('form#RequestForm').attr('enctype', 'multipart/form-data');   
    }
    }); 
}); 
</script>
Run Code Online (Sandbox Code Playgroud)

更新:为了清楚起见,已加载HTML页面。然后,根据用户的选择,通过AJAX加载上面列出的FORM。我还已将表单和脚本添加到AJAX加载的内容中,以便在调用AJAX事件以加载它后将其添加到HTML页面中。

这是一个带有更多代码的简短说明http://pastebin.com/GbWkukQu

Chu*_*ess 0

解决方案不是我所期望的。我有点失望它无法通过 jQuery 弄清楚。我最终直接编写了 javascript。

function changeForm(chkbox) {
    if (chkbox.checked == 1) {
        document.getElementById("RequestForm").removeAttribute("enctype","");
    } else {
        document.getElementById("RequestForm").setAttribute("enctype","multipart/form-data");
    }   
}
Run Code Online (Sandbox Code Playgroud)

然后onClick="changeForm(this);"在复选框上打一个。现在,即使通过 Ajax 加载它,对该函数的调用也可以正常工作。它改变了形式,一切都很好。

jQuery 坏了吗?或者我只是错过了什么?