Javascript 函数在模糊或 onclick 上不起作用

标签 javascript jquery ajax html-table

我对 ajax 相当陌生,我不确定为什么我的函数没有触发。我有一个使用 MySQL 数据库中的值动态构建的表。我正在尝试使表格能够内联编辑。 我想要编辑的表格部分构建如下......

<tr class="table-row">
    <td><?php echo $row['idcpu']; ?></td>
    <?php 
    echo "<td contenteditable=\"true\" onBlur=\"saveToDatabase(this,'name','".$row['idcpu']."');\" onClick=\"showEdit(this);\">".$row['name']." </td>";
    echo "<td contenteditable=\"true\" onBlur=\"saveToDatabase(this,'description','".$row['idcpu']."');\" onClick=\"showEdit(this);\">".$row['description']."</td>";
    echo "<td contenteditable=\"true\" onBlur=\"saveToDatabase(this,'price','".$row['idcpu']."');\" onClick=\"showEdit(this);\">".$row['price']."</td>";
    echo "<td contenteditable=\"true\" onBlur=\"saveToDatabase(this,'quantity','".$row['idcpu']."');\" onClick=\"showEdit(this);\">".$row['quantity']."</td>"; ?>
</tr>

Javascript 也是如此......

<script>
    function saveToDatabase(editableObj,column,id) {
        $(editableObj).css("background","#FFF url(Loading_icon.gif) no-repeat right");
        $.ajax({
            url: "update/cpu.php",
            type: "POST",
            data:'column='+column+'&editval='+editableObj.innerHTML+'&id='+id,
            success: function(data){
                $(editableObj).css("background","#FDFDFD");
            }
       });
    }
</script>

我尝试了许多不同的方法将代码输出到 html,所以我知道这不是问题,但我可能很容易错过我需要的东西,因为我说过我是新手。任何帮助将不胜感激

最佳答案

您的代码似乎工作得很好。您可以在这里查看:

JSBin Example

我已经使用 Chrome v49 对其进行了测试。

正如 @zer00ne 提到的,您应该尝试使用 <input>将其嵌套在 <td> 内元素并在输入更改时运行 ajax 调用。浏览器支持好多了。

关于Javascript 函数在模糊或 onclick 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36115044/

相关文章:

javascript - 为什么我得到 : Uncaught ReferenceError: response is not defined

javascript - 如何使用Jquery显示JSON内容

javascript - 了解jquery事件被调用的次数以及keyup事件的正确处理

javascript - Hammer JS 似乎不起作用

ASP.NET AJAX 和用户控件 : handling client side scripting

javascript - 设置 Angular JS 中包含的模板中的 $scope 变量的值

jquery - Django 数据表加载 ajax 数据加载

javascript - JavaScript 构造函数的用例

javascript - ng-repeat 中新添加的项目正在更改

javascript - 使用 javascript 获取两个日期之间的日期列表