Javascript 使用onblur启动对phpmysql数据库的ajax查询

Javascript 使用onblur启动对phpmysql数据库的ajax查询,javascript,jquery,ajax,Javascript,Jquery,Ajax,当人们离开表单输入字段时,我正在尝试(但失败)使ajax过程正常工作。我需要它发生在表单上任何类型的每个输入字段上 我正在尝试修改以下内容(确实有效): (html中会有一个id为“getcontent”的按钮,html中也会有一个id为“example”的div。单击按钮时,外部文件sampletextcontent.txt的内容会显示在所述div中) 正在使用jquery,版本为2.0.3 jquery.min.js 因此,我正在尝试(这是我失败的地方)将上述内容转化为: $("docume

当人们离开表单输入字段时,我正在尝试(但失败)使ajax过程正常工作。我需要它发生在表单上任何类型的每个输入字段上

我正在尝试修改以下内容(确实有效):

(html中会有一个id为“getcontent”的按钮,html中也会有一个id为“example”的div。单击按钮时,外部文件sampletextcontent.txt的内容会显示在所述div中)

正在使用jquery,版本为2.0.3 jquery.min.js

因此,我正在尝试(这是我失败的地方)将上述内容转化为:

$("document").ready(function() {
    $("#input_1_1").onblur(doSend);
    $("#input_1_2").onblur(doSend);
    $("#input_1_3").onblur(doSend);
    $("#input_1_4").onblur(doSend);
    $("#input_1_5").onblur(doSend); // etc for as many fields there are
})

function doSend() {
    // Do some ajax stuff to send the entire value of all form fields in here
}
但它似乎不喜欢在此处使用“.click”to“.onblur”替换的概念。为什么会这样?onblur不是有效的JS函数/项吗

对不起,我不是JS大师,我在理解JS方面有很大的问题

C


编辑-抱歉,我不清楚我正在尝试使用的代码。在我想要工作的版本中没有按钮,它只是想在用户点击/制表符离开每个输入字段时触发。很抱歉,之前没有明确说明这一点。

对于动态jQuery事件绑定,我会尝试将.click和.blur函数切换为.on函数

作为一个例子,我将尝试以下方法:

$('body').on('click', '#getcontent', function(){
    DoSomething();
});

可以找到on功能的文档


下面是另一篇堆栈溢出文章,也解释了这一点:。

感谢评论和回答尝试。然而,我使用的答案,实际上回答了一个具体的问题,如下所示。简单更改:

$("document").ready(function() {
    $("#input_1_1").onblur(doSend);
    $("#input_1_2").onblur(doSend);
    $("#input_1_3").onblur(doSend);
    $("#input_1_4").onblur(doSend);
    $("#input_1_5").onblur(doSend); // etc for as many fields there are
})
成为:

$("document").ready(function() {
    $("#input_1_1").blur(doSend);
    $("#input_1_2").blur(doSend);
    $("#input_1_3").blur(doSend);
    $("#input_1_4").blur(doSend);
    $("#input_1_5").blur(doSend); // etc for as many fields there are
})
它是有效的。如果我愿意的话,这保留了对每个字段调用不同函数的能力,对于像我这样的JS新手来说,这非常简单


一个更好的更干净的解决方案可能会在以后实施,但现在这样做可以直接回答最初的问题。

您应该像
那样对字段进行分类。在
$这样的类上发送事件处理程序,并基于
$('.send\u on \u blur')。在('blur',doSend')这样的类附加事件处理程序
而不是将事件附加到一堆不同的id上,尤其是如果您仍要发送整个表单内容(因为根据哪个字段模糊,行为没有区别)。这是正确的,可以理解的,但不能保证每个字段的行为始终没有区别,所以回到原来的问题。我可以在它工作之后再整理它,我正在做的事情会更加精细。谢谢Nathan,你能把它放到JSFIDLE中让我看一下并玩一下吗?
$("document").ready(function() {
    $("#input_1_1").onblur(doSend);
    $("#input_1_2").onblur(doSend);
    $("#input_1_3").onblur(doSend);
    $("#input_1_4").onblur(doSend);
    $("#input_1_5").onblur(doSend); // etc for as many fields there are
})
$("document").ready(function() {
    $("#input_1_1").blur(doSend);
    $("#input_1_2").blur(doSend);
    $("#input_1_3").blur(doSend);
    $("#input_1_4").blur(doSend);
    $("#input_1_5").blur(doSend); // etc for as many fields there are
})