Цель состоит в том, чтобы пользователь заполнил ряд полей в одной регистрационной форме и скопировал свои входные данные в любую другую форму, для которой они регистрируются. Вместо того чтобы перечислять каждое поле независимо и устанавливать значение, я создал этот сценарий, чтобы идентифицировать поля на основе общего имени класса, и цель состоит в том, чтобы установить соответствующее значение.
Работает нормально, если я заменю fieldValue на что-то вроде «привет». fieldValue получает строку из каждого поля во время циклов, поэтому он устанавливается как «travis» в поле первого имени. console.log выводит также отлично для fieldValue, но он просто не будет установлен.
Есть мысли?
PS: Если вам интересно, «почему по названию класса?»Это происходит потому, что эти формы генерируются, а их поле имени создается с учетом массива «registration [1] [field_name]», поэтому я назначаю field_name в списке классов и использую его для идентификации. И клиент мог бы заполнить 10 форм, некоторые для них, а некоторые для других, так что проще сделать это таким образом, чем пытаться получить размещение формы, в котором, как оказалось, есть другая «я» информация.
$('.copy-myself').change(function(){
if($(this).is(':checked')) {
var currentForm = $(this).parent().closest('.registration .card');
$('.registration .card').not($(this).parent().closest('.registration .card')).each(function(){
var form = $(this);
if($(this).find('input.myself-checkbox').is(':checked')) {
$(form).find('input').each(function(){
var fieldValue = $(this).val(); //ie. "travis"
if($(this).attr("class")){
var myClass = $(this).attr("class").replace(/ /g,'.');
$(currentForm).find('input.'+ myClass).val(fieldValue);
// The following outputs current found field value if available ie "test"
// console.log($(currentForm).find('input.'+ myClass).val());
// This works if I set Hi
// $(currentForm).find('input.'+ myClass).val('Hi');
}
});
}
});
}
});
В настоящее время он очищает все существующие значения в полях, поэтому, когда я вхожу в тест, например, который я сделал, чтобы убедиться, что «тест» был зарегистрирован в одной из закомментированных строк, он очищает тест и не вводитчто-нибудь.
Обновление Хорошо, что-то интересное во время тестирования 'Привет' (который хорошо заполняет каждый элемент ввода). Я подумал добавить счетчик во время $ (form) .find ('input'). Each (function () {.. loop) и включить счетчик в значение ('hi'+ i) . В идеале я должен видеть эту распечатку по порядку, однако каждое поле ввода выдает «Hi42». Так что это может быть то, где я испытываю проблему во время цикла, fieldValue не совпадает, однакоЯ думаю, что я вижу неправильные данные вместо пустых полей. Продолжу тестирование.