从附加元素调用javascript

从附加元素调用javascript,javascript,jquery,html,django,Javascript,Jquery,Html,Django,我只是想弄清楚这里的概念 假设我有这个html页面: <script> function_1() { ... posts a form via ajax }; </script> <body> <div class='car'> </div> </body> 我们的想法是通过ajax通过按下submit按

我只是想弄清楚这里的概念

假设我有这个html页面:

        <script>
        function_1()
           {
          ... posts a form via ajax
           };
        </script>



<body>
<div class='car'>

</div>
</body>
我们的想法是通过ajax通过按下submit按钮调用
function\u 1
函数来提交此表单

这行吗?因为当我提交表单时,它没有调用
函数\u 1
,而是通过常规的Http post发布

当我们将
append()
prepend()
元素添加到DOM中时,它们是否可以立即访问javascript


谢谢

您需要使用委托事件处理程序,例如:

$(document).on("submit", "#your-form-id", function(e) {
  e.preventDefault();
  // AJAX code
});

然后,无论何时追加表单,只要表单存在,都将在提交时调用处理程序。

您在运行时追加这些表单元素,因此必须使用
事件委派为其注册事件。顺便说一句,它是一个提交按钮,所以每当你点击它时,它只会调用它的默认操作,即提交表单。因此,您应该使用
e.preventDefault()
来防止其默认行为,或者您应该将该按钮的类型从
submit
更改为
button

试试看


$(文档).ready(函数(){
函数_1()
{
…通过ajax发布表单
};
$(文档)。在(“单击”,“输入[type='submit']”上,函数(e){
e、 预防默认值();
函数_1()
});
});      

您是否调用了
e.preventDefault()
?我试图在$(document).ready()之外添加代码,但它不起作用。我也没有调用e.preventDefault()。还在学习的另一个答案说明了这一点。我接受这一点,因为它更友好。
$(document).on("submit", "#your-form-id", function(e) {
  e.preventDefault();
  // AJAX code
});
<script>
$(document).ready(function(){
          function function_1()
           {
              ... posts a form via ajax
           };

          $(document).on("click", "input[type='submit']", function(e) {
               e.preventDefault();

               function_1()
          });
});      
</script>