2012-06-08 59 views
0

我正在使用blur()将用户在表单中写入的内容复制到注册向导末尾的摘要页面。这很好。jquery触发加载模糊的所有输入元素

但是,当我预设一些字段值,这些都是正确的,没有被复制,因为用户可能不会与该特定字段进行交互。他们只会继续点击。

有没有办法触发所有的文本字段,textareas为了获得这些值复制以及?

这是我使用的功能:

/** 
* 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'); }); 

我应该在哪里放触发()事件? 我使用触发器()在选择>第一个选项后,一旦使用getJSON获取列表,以便在链接选择事件中自动填充下一个列表。 但是,这是一个有点不同......

+0

不是直接的方式,但你可以设置所有可能的事件,如键盘keydown等等来处理Your_copier函数。如果我没有得到您的问题点请告诉我 –

回答

8

您可以使用招:)

$('input').each(function(){ 
    $(this).trigger('blur'); 
    //each input event one by one... will be blured 
}) 
0

你试过.trigger()?

​​

+0

我认为他知道触发器,请参阅问题标题 –

0

怎么样,把你的拷贝输入到汇总代码,并把它变成一个功能。保持模糊不变(除了调用此函数而不是内联代码)并在$(document).ready()上选择所有文本框并在它们包含任何内容时复制它们。比尝试欺骗事件更简单。

+0

刚刚更新了我的第一篇文章。 我不使用内联编码,而是直接使用模糊。我调用一个函数,当用户离开这个字段时,为这个特定的表单放在一起... – ThomasK

+0

那么为什么不直接调用$(document).ready中的copyFormData来填充默认值呢?或者我的思念失去了你的形式吗? –

+0

不理解你的问题。 这是一个常规的形式,我猜。虽然它被分成了三个不同的“页面”,可滚动类似于:http:// jquerytools。组织/演示/滚动/ wizard.html – ThomasK

2
$('input[type=text], textarea').blur(); 

或(可能更快,如果一切都必然与jQuery):

$('input[type=text], textarea').triggerHandler('blur'); 
0

你可以尝试通过发射了

$("selector").trigger("blur"); 

api.jquery.com/trigger编程触发它们是你的朋友:-)

0

你可以使用波纹管代码它会帮你

$('input:text').each(function(){ 
     $(this).trigger('blur'); 
    })