通过ajax更新数据库中的单个表单元素值?

时间:2013-03-11 15:12:22

标签: javascript jquery

我在页面上有很多用户可以更改的输入元素。我不想提交表格。我只想在用户更改其中一个元素内的值后更改数据库值。

我目前正在尝试将焦点绑定到每个输入。这是通常做的方式(Facebook等等)?

    $('input').focusout(function() {
    var current_val = $(this).val();
    var preset_val = $(this).attr('rel');//attribute set with original value
    if (current_val !== preset_val) {
                alert ('Value changed.');//where I would post to php page to update database
            }
    });"

1 个答案:

答案 0 :(得分:1)

“通常完成”的方式是等到用户单击按钮以保存或提交更改。如果您要更新每个更改,您应该确保对用户非常清楚。

使用的适当事件取决于您希望捕获更改的积极程度。对于每次击键更新,keyup适用于输入,click适用于选择和无线电/复选框。不太激进的是blurchange

对捕获任何可能的更改采取非常主动的一种方法是将clickkeyup附加到表单元素本身。这也将节省向每个元素添加侦听器的开销。每次在表单上触发事件时,您可以a)检查原始目标,或b)ajax整个表单,或者c)循环所有元素并检测更改,只有ajax更改字段。

onbeforeupload可用于在窗口关闭的情况下对表单进行最终检查,但这可能有点过于夸张。

<强>文档