在JavaScript中提交表单后动态内容不更新

编程入门 行业动态 更新时间:2024-10-07 06:46:54

在JavaScript中提交<a href=https://www.elefans.com/category/jswz/34/1771263.html style=表单后动态内容不更新"/>

在JavaScript中提交表单后动态内容不更新

在我再次点击保存按钮后,它就会显示出来,所以基本上是 这是一个落后的一步,它更新数据库,但第二次点击后加载。.我的代码肯定有问题。

const fetchTweets = async () => {
        let tweets = await axios.get(url);
        return tweets.data.response;
    }

一个在页面加载时被调用的函数。

const showTweets = async () => {
        let tweets = await fetchTweets();
        let list = ''
        let tweetsElement = document.querySelector('#tweets')
        for(let tweet of tweets) {
            list += tweetFormat(tweet);
        }
        tweetsElement.innerHTML = list;
    }
    showTweets()

但是当我用这个函数提交表单的时候 即使我调用了这个函数 ShowTweets() 功能。

const tweetFormElement = document.querySelector('#tweet-create-form');
    document.addEventListener('submit', (event) => {
        event.preventDefault();
        const formData = new FormData(event.target);
        const url = event.target.getAttribute('action');
        const method = event.target.getAttribute('method');
        axios({
            method: method,
            url: url,
            data: formData
        }).then((res) => {
            console.log(res);
        })
        showTweets() // <-- calling it here
    });

当我再次点击提交时,数据显示在页面上,但它又更新了两次数据库.请谁能帮忙。

回答如下:

你没有等待请求完成后再加载推文。

移動 showTweets 里面 .then:

axios({
  method: method,
  url: url,
  data: formData
}).then((res) => {
  console.log(res);
  showTweets()
})

另外,您可能是想将提交监听器添加到 tweetFormElement 而不是整个文件。

tweetFormElement.addEventListener('submit', // ...

更多推荐

在JavaScript中提交表单后动态内容不更新

本文发布于:2024-05-13 11:58:50,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1759508.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:表单   内容   动态   JavaScript

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!