javascript - 使用 JQuery 创建元素时遇到问题

标签 javascript jquery ajax dom

我有这个表格:

<form>
  <input id="checkuser" type="text" name="user" placeholder="Your username"/>
</form>

我用 JQuery 做的是检查写入的用户名是否可用。这是 JQuery 代码:

 $('#checkuser').click(function (){

     $(this).change(function () {
     $.ajax( {
       url: '/check',
       type: 'POST',
       cache: false,
       data: { checkuser: $(this).val() },
       dataType: "json",
       complete: function() {

    },

    success: function(data) {

        var check = JSON.stringify(data.aval);

        if (check == "false") {

            $('<p>Not available.</p>').insertAfter('#checkuser');

        }

        else {

              $('<p> Available!</p>').insertAfter('#checkuser');

        }

    },
    error: function() {

       console.log('process error');

    }
   });   
  }); 
 });

问题是:如果用户不可用,用户必须重写用户名,当 jQuery 重新检查是否可用时,而不是重写 <p> 的内容, JQuery 创建另一个 <p>老旁边<p> ,因此,这是结果:Not available.Available! ,而是只写其中一个。我该如何解决这个问题?

最佳答案

为了解决这个问题,我会添加一个空白 <p></p>输入后标记并在需要时更新此标记。

     <form>
       <input id="checkuser" type="text" name="user" placeholder="Your username"/>
       <p></p>
     </form>
     $('form p').text('Available!');

关于javascript - 使用 JQuery 创建元素时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14085966/

相关文章:

javascript - 内联 JavaScript 似乎是随机加载的,如果有的话

jquery - 如何使用 Bootstrap 3 在 div 中垂直居中 div

javascript - jQuery Ajax 在第二次提交时发送两次,在第三次提交时发送三次

javascript - ExtJS、Flask 和 AJAX : cross-domain request

javascript - 如何在 THREE.js 中正确清除内存

javascript - Firestore 订购限制

javascript - 为什么 jQuery 不是 W3C 标准?

iphone - 为什么我的 Ajax 请求在 IOS 上的 Safari 中不起作用?

javascript - 恢复 native 窗口方法

javascript - 需要 Google 图表帮助,用于带有额外垂直线的需求和供应图表