You need to enable JavaScript to run this app. 页面change事件无法触发Ajax请求 相关交互功能运行异常求助
优惠活动
大模型
产品
解决方案
定价
更多

页面change事件无法触发Ajax请求 相关交互功能运行异常求助

修复方案

核心错误

你的代码语法存在低级错误:$.ajax()调用结尾多写了一个多余的分号,直接中断了链式调用,导致.done()回调无法正确绑定到Ajax请求上,自然不会触发弹出提示的逻辑。

修正后可直接运行的代码

$("#diary").bind('input propertychange', function() {
  $.ajax({
    method: "POST",
    url: "connectDatabase.php",
    data: {
      content: $("#diary").val()
    }
  })
  .done(function(msg) {
    alert("Data Saved: " + msg);
  });
});

优化建议

  • 若你使用的jQuery版本≥1.7,更推荐用官方推荐的.on()代替已废弃的.bind()方法,写法仅需修改第一行:
    $("#diary").on('input propertychange', function() {
    
  • 建议补充错误捕获逻辑,方便排查后端接口异常问题:
    $("#diary").on('input propertychange', function() {
      $.ajax({
        method: "POST",
        url: "connectDatabase.php",
        data: {
          content: $("#diary").val()
        }
      })
      .done(function(msg) {
        alert("Data Saved: " + msg);
      })
      .fail(function(xhr, status, error) {
        alert("请求失败,错误信息:" + error);
      });
    });
    
  • 输入事件触发频率极高,每输入一个字符就发请求会给服务器带来不必要压力,建议加防抖处理,比如用户停止输入300ms后再发送请求:
    let postTimer = null;
    $("#diary").on('input propertychange', function() {
      clearTimeout(postTimer);
      postTimer = setTimeout(() => {
        $.ajax({
          method: "POST",
          url: "connectDatabase.php",
          data: {
            content: $("#diary").val()
          }
        })
        .done(function(msg) {
          alert("Data Saved: " + msg);
        });
      }, 300);
    });
    

内容的提问来源于stack exchange,提问作者Abdul Haseeb Ahmad Bashir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 12:30:01