首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >AjaxForm函数在第二次不起作用

AjaxForm函数在第二次不起作用
EN

Stack Overflow用户
提问于 2018-06-01 04:47:30
回答 2查看 41关注 0票数 -1

我正在尝试使用AjaxForm更新数据。在第一次调用时,它工作得很好,并更新了我的id中的html文本。

代码语言:javascript
复制
            <script type="text/javascript">
            $( document ).ready(function() {
                $('.entry_form').ajaxForm(function(data) { 
                        $("#results").html(data);
                });
                $('.submitclosest').on('click', function(e) {
                    e.preventDefault();
                    $(this).closest('form').submit();
                });
            });
        </script>

在我的抓取文件中,我得到了这一行:

代码语言:javascript
复制
<script>$('#sales_<?=$tid;?>_<?=$position_json;?>').html('<?php ShowSlot($tid, $position_json);?>');</script>

我在函数文件中得到了这个:

代码语言:javascript
复制
    function ShowSlot($tid, $position_json)
{
?><form action="fetch/add_entry.php" method="post" class="entry_form"><input type="hidden" name="tid" value="<?=$tid;?>" /><input type="hidden" name="position" value="<?=$position_json;?>" /><a href="#" class="submitclosest"><i class="fas fa-user-plus"></i></a></form><?php   
}

知道为什么它只在第一次刷新时起作用吗?

EN

回答 2

Stack Overflow用户

发布于 2018-06-01 04:50:50

乍一看,您似乎只在

$(document).ready

这意味着只有在页面首次加载或刷新时才会调用它。如果希望在页面加载后更新表单,则必须通过计时器或单击事件或类似的方式再次调用AJAX函数。

编辑:实现示例

假设submitclosest是用户在提交时单击的元素,我将简单地这样做:

代码语言:javascript
复制
$( document ).ready(function functionName() {
            $('.entry_form').ajaxForm(function(data) { 
                    $("#results").html(data);
            });
            $('.submitclosest').on('click', function(e) {
                e.preventDefault();
                $(this).closest('form').submit();
                functionName;
            });
        });
票数 0
EN

Stack Overflow用户

发布于 2018-06-01 05:01:29

代码语言:javascript
复制
function convertFormToAjaxSubmit () {
  //initialize the entry_form in the results to submit with ajax
  //this only effects the elements that exist in the DOM at that point in time
  $('#results .entry_form').ajaxForm(function(data) {
    //the following line replaces the elements that were previously initialized with
    //different elements
    $("#results").html(data);
    //call the method again to bind on the new form created in the results
    convertFormToAjaxSubmit();
  });
}

convertFormToAjaxSubmit();

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50632539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档