jquery在加载时触发所有输入元素

时间:2012-06-08 09:55:36

标签: jquery events triggers copy

我正在使用 blur()将用户在表单中写入的内容复制到注册向导结尾的摘要页面中。这很有效。

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

有没有办法触发所有文本字段,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');    });

我应该在哪里放置 trigger()事件? 在使用getJSON获取列表后,我在select>第一个选项上使用了 trigger(),以便在链式选择事件中自动填充下一个列表。 但那有点不同......

7 个答案:

答案 0 :(得分:10)

你可以使用技巧:)

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

答案 1 :(得分:3)

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

或者(如果所有内容都与jQuery绑定,可能会更快):

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

答案 2 :(得分:0)

你试过.trigger()?

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

您可以尝试通过启动

以编程方式触发它们
$("selector").trigger("blur"); 

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

答案 5 :(得分:0)

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

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

答案 6 :(得分:0)

如果您碰巧在输入的所有ID上添加了相同的前缀,并且希望仅一次模糊所有这些输入,则可以使用通配符选择并执行以下操作:

_logger = logging.getLogger(__name__)

class NewContact(models.Model):

    _inherit = 'res.partner'

    new_field = fields.Char("new field:")

_____.xml
    <record id="new_field_id" model="ir.ui.view">
        <field name="name">res.partner.inherited.form.view</field>
        <field name="model">res.partner</field>
        <field name="inherit_id" ref="base.view_partner_form"/>
        <field name="arch" type="xml">
            <xpath expr="//field[@name='vat']" position="before">
                <field name="new_field"/>
            </xpath>
        </field>
    </record>

value['new_field'] = "test value text"