我正在使用 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(),以便在链式选择事件中自动填充下一个列表。 但那有点不同......
答案 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()?
答案 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"