0

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

我目前正在尝试将焦点绑定到每个输入。这是它通常的做法(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
            }
    });"
4

1 回答 1

1

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

要使用的适当事件将取决于您希望在捕获更改时的积极程度。对于每次击键更新,keyup适用于输入、click选择和单选框/复选框。不那么激进的将是blurchange

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

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

文档

于 2013-03-11T15:15:27.593 回答