Как я могу настроить вывод строки в JavaScript и задать последовательностьJquery

Программирование на jquery
Ответить
Anonymous
 Как я могу настроить вывод строки в JavaScript и задать последовательность

Сообщение Anonymous »

Мне нужна помощь, я использую код Javascript для обнаружения полей Radios, TextInputs и Text Area и помещаю обнаруженные значения из поля в последовательность в поле ввода.
Я присвоил каждому полю идентификатор с последовательностью , name1, name2, name3, name4, name5, name6, name7, name8, name8, name10 и name11, а идентификатор поля, куда вставляется строка, — sc_tgenerator_form_field_prompt_text.
У меня есть некоторый код, и мне интересно, можно ли его настроить последовательность конечной строки, которая помещается в sc_tgenerator_form_field_prompt_text
Я пробовал этот код, и он работает. он показывает значения радио последовательно, но показывает все текстовые входы и текстовые области в конце строки.
его неправильная последовательность, правильная последовательность - это имя 1, 2, 4, 5, 9 - это радио, а имя 3, 6, 7 8 - это текстовые поля, а 10 и 11 — текстовые области.
Вот код
// Select all radio buttons from the nine forms
const radios = document.querySelectorAll('input[type="radio"]');

// Select the input field where you want to display the generated string
const inputField = document.querySelector('.sc_tgenerator_form_field_inner input[type="text"]');

// Store text input values separately
let textInputValues = {};

// Function to update the input field based on selected radio options
var defaultTextGlobal;
var counter = 0;

function updateInputField() {
if (counter == 0) {
defaultTextGlobal = jQuery('.sc_tgenerator_form_field_prompt_text').val() + ',';
}

let selectedOptions = [];
radios.forEach(radio => {
if (radio.checked) {
selectedOptions.push(radio.value);
}
});

// Include text input values in the selected options
Object.keys(textInputValues).forEach(key => {
if (textInputValues[key].trim() !== '') {
selectedOptions.push(textInputValues[key].trim());
}
});

counter = counter + 1;
inputField.value = defaultTextGlobal + ' ' + generateString(selectedOptions);
}

// Generate the string with the desired format
function generateString(options) {
if (options.length === 0) {
return '';
}
let result = options[0] + ' of ';
if (options.length > 1) {
result += options.slice(1).join(', ');
}
result = result.replace('Do not include of ', '');
result = result.replace('Do not include', '');
result = result.replace('Do not include of,', '');
result = result.replace('Do not include,', '');

return result;
}

// Add event listeners to all radio buttons to listen for changes
radios.forEach(radio => {
radio.addEventListener('change', updateInputField);
});

// jQuery for text inputs and text areas
jQuery(document).ready(function ($) {
// Select text inputs and text areas and add input event listener
$('#form-field-name3, #form-field-name6, #form-field-name7, #form-field-name8, #form-field-name10, #form-field-name11').on('input', function () {
textInputValues[this.id] = $(this).val(); // Store text input values
updateInputField(); // Update the input field
});
});


Подробнее здесь: https://stackoverflow.com/questions/782 ... a-sequence
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Jquery»