У меня есть форма, которая вставляет и извлекает данные из таблицы Google.
Пример:
В моей форме есть два переключателя
<input id = "Rdio_1" name = "RdioSelect" type = "radio" class = "FirstCheck"
value = "1" onchange = "RadioValInsert ()"/>
<input id = "Rdio_2" name = "RdioSelect" type = "radio" class = "FirstCheck"
value = "2" onchange = "RadioValInsert ()" />
при нажатии на указанное выше значение переключателя сохраняется в текстовом поле ... RadioValInsert ()
делает это
<input type = "text" id = "DatafromRadio" name = "DatafromRadio">
Я могу вставить это значение 1 или 2 в соответствующую ячейку в листе Google.
Когда я хочу отредактировать его, я извлекаю данные, а значение текстового поля равно 1 или 2.
Кнопка, которая извлекает данные, имеет функцию проверки соответствующего переключателя на основе значения текстового поля.
function RadioChk() {
var val = document.getElementById("DatafromRadio").value;
if (val == 1) {
document.getElementById("Rdio_1").checked = true;
}
if (val == 2) {
document.getElementById("Rdio_2").checked = true;
}
}
Это не работает
Заранее спасибо за помощь
Пожалуйста, предоставьте свой код в JsFiddle, чтобы решить проблему и получить дополнительные объяснения.
@shivani jsfiddles может быть хорошим дополнением, но, поскольку SO также имеет инструмент фрагмента кода, его следует предпочесть инструменту внешнего фрагмента
Вы выполняете свой код, связанный с check
и uncheck
, внутри функции RadioChk
, однако вы не связали click event
на радиовходах. Если я правильно понял ваш вопрос, вот как вы можете выбрать и отменить выбор переключателей.
function RadioValInsert() {
console.info('checked');
var val = document.getElementById("DatafromRadio").value;
if (val ==1 || val ==2){
uncheckAll();
document.getElementById("Rdio_"+val).checked = true;
}else{
uncheckAll();
console.info('choose only between 1 or 2');
}
}
function uncheckAll(){
let ele = document.getElementsByName("RdioSelect");
for(var i=0;i<ele.length;i++){
ele[i].checked = false;
}
}
<input id = "Rdio_1" name = "RdioSelect" type = "radio" class = "FirstCheck"
value = "1" onchange = "RadioValInsert ()"/>
<input id = "Rdio_2" name = "RdioSelect" type = "radio" class = "FirstCheck"
value = "2" onchange = "RadioValInsert ()" />
<input type = "text" id = "DatafromRadio" name = "DatafromRadio">
Привет, спасибо за это - я могу это сделать и получить значение - то, что я хочу, это обратное - текстовое поле заполняется либо 1, либо 2
текстовое поле заполняется либо 1, либо 2, когда данные извлекаются из листа Google ... Теперь мне нужно проверить Rdio_1, если значение текстового поля равно 1 или проверить Rdio_2, если значение текстового поля равно 2 ... для этого у меня есть функция RadioCheck (), указанная в исходном сообщении, которая запускается при нажатии кнопки для получения данных ... Примечание. Это статическая HTML-форма.
Попробуйте этот пример, где выбор радио и значение текстового поля изменяется в соответствии с выбором / вводом
document.addEventListener('DOMContentLoaded', function(dce) {
var radios = document.querySelectorAll('[name = "RdioSelect"]');
var textbx = document.querySelector('[name = "DatafromRadio"]');
radios.forEach(function(r) {
r.addEventListener('click', function(e) {
textbx.value = this.value;
});
});
textbx.addEventListener('input', function(e) {
radios.forEach(function(r) {
r.checked = (r.value === textbx.value);
});
});
var fillTxt = function(txt) {
textbx.value = txt;
textbx.dispatchEvent(new Event('input')); //<-- trigger event
};
fillTxt('2'); //<--- update text box
});
<input id = "Rdio_1" name = "RdioSelect" type = "radio" value = "1" />
<input id = "Rdio_2" name = "RdioSelect" type = "radio" value = "2" />
<input type = "text" id = "DatafromRadio" name = "DatafromRadio" />
this works only if data is input physically in the text box - in my case the data is retrieved via a function and it populates the text box
В этом случае просто активируйте событие в текстовом поле
Hi-Tx для этого - это работает только в том случае, если данные вводятся физически в текстовое поле - в моем случае данные извлекаются через функцию и заполняют текстовое поле - я думаю, мне нужно запустить функцию после обновления текстовое поле - поскольку кажется, что функция проверки переключателя выполняется до заполнения текстового поля .... не знаю, как это сделать
Разместите также свой HTML