2012-06-08 2 views
0

Я использую blur(), чтобы скопировать то, что пользователь пишет в форме на итоговую страницу в конце мастера регистрации. И это отлично работает.jQuery триггер всех входных элементов с размытием при загрузке

Но когда я задаю некоторые значения полей, и они верны, ничего не копируется, так как пользователь, вероятно, не будет взаимодействовать с этим конкретным файлом. Они просто нажмут.

Есть ли способ запускать все текстовые поля, текстовые поля, чтобы скопировать эти значения?

Это функция, я использую:

/** 
* 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

Непосредственный путь, но вы можете установить все возможные события, такие как клавиатурный ввод и т. Д., Чтобы обрабатывать функцию Your_copier. если я не получил смысл вашей проблемы, скажите мне, пожалуйста, –

ответ

8

Вы можете использовать трюк :)

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

Как насчет, принимая ввод копию сводной кода и ввод его в функцию. сохраняйте размытие как есть (за исключением вызова этой функции, а не встроенного кода) и на $ (document) .ready() выберите все ваши текстовые поля и скопируйте их, если они содержат что-либо. Проще, чем пытаться вымывать события.

+0

только что обновил мое первое сообщение. Я не использую встроенное кодирование, и я использую размытие, как есть. Я вызываю функцию, которую я собрал для этой конкретной формы, когда пользователь покидает поле ... – ThomasK

+0

Итак, почему бы просто не вызвать copyFormData в $ (document) .ready, чтобы заполнить значения по умолчанию? Или есть какой-то шаг в вашей форме, который я пропускаю? –

+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'); 
    }) 
Смежные вопросы