1

我正在使用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(),以便在链式选择事物中自动填充下一个列表。但这有点不同……

4

7 回答 7

10

你可以使用技巧:)

$('input').each(function(){
  $(this).trigger('blur');
  //each input event one by one... will be blured
})
于 2012-06-08T09:59:11.717 回答
3
$('input[type=text], textarea').blur();

或者(如果一切都与 jQuery 绑定,可能会更快):

$('input[type=text], textarea').triggerHandler('blur');
于 2012-06-08T10:00:25.630 回答
0

你试过 .trigger() 吗?

http://api.jquery.com/trigger/

于 2012-06-08T09:59:35.730 回答
0

怎么样,将您的复制输入带到摘要代码中并将其放入函数中。保持原样(除了调用此函数而不是内联代码)并在 $(document).ready() 上选择所有文本框并复制它们(如果它们包含任何内容)。比试图捏造事件更简单。

于 2012-06-08T09:59:51.217 回答
0

您可以尝试通过启动以编程方式触发它们

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

api.jquery.com/trigger 是你的朋友 :-)

于 2012-06-08T10:00:50.377 回答
0

你可以使用下面的代码它会帮助你

 $('input:text').each(function(){
        $(this).trigger('blur');
    })
于 2014-07-17T09:58:58.540 回答
0

如果您碰巧为输入的所有 ID 添加了相同的前缀,并且希望一次只模糊这些输入,您可以使用通配符选择并这样做:

$("[id^=inputbox] input").trigger("blur");
于 2019-07-29T10:42:50.110 回答