Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 检测表单焦点和模糊(多输入)_Jquery - Fatal编程技术网

Jquery 检测表单焦点和模糊(多输入)

Jquery 检测表单焦点和模糊(多输入),jquery,Jquery,我到处找了又没找到解决办法。情况是这样的 我有一个注册表单,表单标签中有多个输入。当有人关注表单并点击表单时,我如何检测?注*这与单个输入焦点/模糊不同。在这种情况下,我希望将表单作为一个整体来处理,这意味着在表单本身的各种输入字段之间切换时,模糊状态将不会被激活 这能做到吗?我的应用程序需要检测用户聚焦在表单上,然后从签名器上滑下。当用户在表单外单击时,签名器将向上滑动 $("document").ready(function() { /* DETECT FORM USE */ $('#

我到处找了又没找到解决办法。情况是这样的

我有一个注册表单,表单标签中有多个输入。当有人关注表单并点击表单时,我如何检测?注*这与单个输入焦点/模糊不同。在这种情况下,我希望将表单作为一个整体来处理,这意味着在表单本身的各种输入字段之间切换时,模糊状态将不会被激活

这能做到吗?我的应用程序需要检测用户聚焦在表单上,然后从签名器上滑下。当用户在表单外单击时,签名器将向上滑动

$("document").ready(function() { 

/* DETECT FORM USE */

$('#signupForm form').live( "focus", function(event) {
    if( $('#signupHelper').is(":visible") == false) $('#signupHelper').slideDown();
});

$('#signupForm form').live( "blur", function(event) {
    if( $('#signupHelper').is(":visible") ) $('#signupHelper').slideUp();
});
}))


1.
选择您的用户名
2.
电子邮件地址
3.
密码
任何帮助都将不胜感激!谢谢 马克·安德森试试看。关键是观看所有正确的事件。这只是该功能的一个基本示例

$('form').live('focus click', function(e){
    $('#signuphelper').show();
    e.stopPropagation(); // stop prop so it doesnt reach body
});

$('form :input:last').blur(function(){  // blur of last input in form
    $('#signuphelper').hide();
}); 

$('body').live('click', function(){ // if the event reaches body hide helper
    $('#signuphelper').hide();      
});

仔细想想,它只在用户位于最后一个表单字段时起作用。是否有一种方法可以使它在用户从任何输入中单击表单外时变得模糊?这不同于将第二条指令改为$('form:input')。本质上,当用户单击表单中的任何输入时,它都是聚焦的。当用户从任何输入中单击出表单时,它会模糊,但是,在表单本身的输入之间切换时不会触发模糊。@Mark Anderson-这就是
$('body')。live('click')
的目的。事件将冒泡到主体节点。但是,当您单击或聚焦
表单中的任何内容时,
e.stopPropagation
调用会阻止事件到达身体。
$('form').live('focus click', function(e){
    $('#signuphelper').show();
    e.stopPropagation(); // stop prop so it doesnt reach body
});

$('form :input:last').blur(function(){  // blur of last input in form
    $('#signuphelper').hide();
}); 

$('body').live('click', function(){ // if the event reaches body hide helper
    $('#signuphelper').hide();      
});