提问人:ThomasK 提问时间:6/8/2012 最后编辑:ThomasK 更新时间:7/29/2019 访问量:24338
jQuery 在加载时触发所有带有模糊的输入元素
jquery trigger all input elements with blur on load
问:
我正在使用 blur() 将用户在表单中编写的内容复制到注册向导结束时的摘要页面中。这效果很好。
但是,当我预设一些字段值并且这些值是正确的时,不会复制任何内容,因为用户可能不会与该特定字段进行交互。他们只需单击“继续”。
有没有办法触发所有文本字段,文本区域以便复制这些值?
这是我正在使用的函数:
/**
* Author: Thomas Kile
* Desc: Copy text from a form element into a given tag.
**
* @param string $type type of form element
* @param string $from Id of form element to copy text/value from.
* @param string $to Id of element to copy text/value into.
*/
function copyFormData(type,from,to)
{
switch (type)
{
case 'text': var copied_text = $(from).val(); break; // get input text value
case 'select': var copied_text = $(from+' option:selected').text(); break;
}
$(to).text(copied_text); // put inside this tag
}
这就是我使用它的方式:
$(firstName).blur(function(){ copyFormData('text',firstName,'strong#firstName'); });
$(lastName).blur(function(){ copyFormData('text',lastName,'strong#lastName'); });
我应该在哪里放置 trigger() 事件? 一旦使用 getJSON 获取列表,我就对 select>first 选项使用了 trigger(),以便在链接的选择事物中自动填充下一个列表。 但这有点不同......
答:
12赞
Sergei Zahharenko
6/8/2012
#1
您可以使用技巧:)
$('input').each(function(){
$(this).trigger('blur');
//each input event one by one... will be blured
})
0赞
Ihor Deyneka
6/8/2012
#2
你试过 .trigger() 吗?
http://api.jquery.com/trigger/
评论
0赞
Maziar Aboualizadehbehbahani
6/8/2012
我想他知道触发器,参考问题的标题
0赞
Jeff Watkins
6/8/2012
#3
怎么样,将您的复制输入转换为摘要代码并将其放入函数中。保持模糊不变(除了调用此函数而不是内联代码),并在 $(document).ready() 上选择所有文本框,如果它们包含任何内容,请复制它们。比试图捏造事件更简单。
评论
0赞
ThomasK
6/8/2012
刚刚更新了我的第一篇文章。我不使用内联编码,而是按原样使用模糊。当用户离开字段时,我调用我为这个特定表单组合在一起的函数......
0赞
Jeff Watkins
6/8/2012
那么,为什么不直接调用 $(document).ready 中的 copyFormData 来填充默认值呢?或者我的表格中缺少一个步骤?
0赞
ThomasK
6/13/2012
不明白你的问题。我猜这是一种常规形式。尽管它在可滚动的可滚动中分为三个不同的“页面”,类似于以下内容:jquerytools.org/demos/scrollable/wizard.html
3赞
Razor
6/8/2012
#4
$('input[type=text], textarea').blur();
或者(如果所有内容都与jQuery绑定,可能会更快):
$('input[type=text], textarea').triggerHandler('blur');
0赞
Petros Mastrantonas
6/8/2012
#5
您可以尝试通过启动以编程方式触发它们
$("selector").trigger("blur");
api.jquery.com/trigger 是你的朋友:-)
0赞
user3361464
7/17/2014
#6
您可以使用下面的代码,它会对您有所帮助
$('input:text').each(function(){
$(this).trigger('blur');
})
0赞
Neel
7/29/2019
#7
如果您碰巧将相同的前缀添加到输入的所有 ID,并且希望一次只模糊这些输入,则可以使用通配符选择并按如下方式执行:
$("[id^=inputbox] input").trigger("blur");
评论