从附加元素调用javascript
我只是想弄清楚这里的概念 假设我有这个html页面:从附加元素调用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按
<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>