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

Javascript 是否通过ajax更新数据库中的单个表单元素值?,javascript,jquery,Javascript,Jquery,我在一个页面上有很多用户可以更改的输入元素。我不想提交表格。我只希望在用户更改其中一个元素内的值后更改数据库值 我目前正在尝试将focusout绑定到每个输入。这是通常的做法吗(facebook等) “通常完成”的方式是等待用户单击按钮来保存或提交更改。如果您要更新每个更改,您应该确保向用户非常清楚这一点 要使用的适当事件将由您在捕获更改时的积极程度决定。对于每次击键更新,keyup适用于输入,单击选择和无线电/复选框。较不具攻击性的是模糊或更改 对于捕获任何可能的更改,一种非常主动的方法是将单

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

我目前正在尝试将focusout绑定到每个输入。这是通常的做法吗(facebook等)

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

要使用的适当事件将由您在捕获更改时的积极程度决定。对于每次击键更新,
keyup
适用于输入,
单击
选择和无线电/复选框。较不具攻击性的是
模糊
更改

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

onbeforeupload
也可用于在窗口关闭时对表单进行最后检查,但这可能有点太过分了

文档


有一个
[on]change
事件,请尝试一下(使用所有浏览器测试!)我不确定我是否理解这个问题,您是否正在查看代码?数据绑定工作原理和javascript数据绑定技术的主题非常广泛。检查AngularJS、Knockout.js和Ember,这三个都是实现这种功能的大型库是的,我自己做,我也用这种方式!我在所有
input:text
上绑定
blur
事件,如果当前值与原始值不同,我调用Ajax函数:
$(this).attr('defaultValue')!=$(this).val()
使用onChange或blur(并手动比较),如果不需要提交form@JoDev
onbeforeuload
的说法不同。
click
事件永远不适用于
元素、单选按钮或复选框。它不会对用户通过键盘进行更改做出反应,也没有理由不为他们使用
change
——与文本输入不同,事件触发的时间没有区别。@AnthonyGrist如我所说,这取决于你想要的攻击性。如果您想在检测表单上的任何活动时表现得非常活跃,那么没有理由不使用click事件。事实上,如果你想成为一个完全的spaz,你可以对表单本身和每个字段应用一个click-and-keyup事件。我只是看到很多网站在做这件事时没有向用户定义流程。现在很普遍了。非常彻底的回答克里斯。
    $('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
            }
    });"