Как передать выбранные значения идентификатора тега div в одно текстовое поле, разделенные запятой, используя JavaScript

0

Javascript:

function sample(c_id) 
{
    document.getElementById("result").value="";

  var x = document.getElementById("result").value=c_id; 

}

HTML:

<div id="1" onclick="sample(this.id)">one</div>
<div id="2" onclick="sample(this.id)">Two</div>
<input type="text" value="" id="result">

Пожалуйста помогите...

Теги:

4 ответа

1
Лучший ответ

Вам нужно сохранить массив значений, которые уже были добавлены во вход. Когда вы переключаете каждый номер, вы можете удалить его из массива с помощью splice() или добавить в массив с помощью push(). Затем все, что вам нужно сделать, это объединить значения с запятой и применить их к значению вашего input:

var taken = [];
function sample(c_id)  {
    var inp = document.getElementById("result");
    var ind = taken.indexOf(c_id);
    if(ind > -1){
        taken.splice(ind,1);
        taken = taken;
    } else {
        taken.push(c_id);
    }
    inp.value = taken.join(',');
}

JSFiddle

Примечание. Недопустимо вводить id с номером. Они должны начать с письма.

  • 0
    привет, я нажимаю один и тот же элемент во второй раз, значит он должен быть удален из текстового поля. но это продолжает добавлять.
  • 0
    Значит, должен быть только один номер?
Показать ещё 5 комментариев
0
function sample(c_id) {
  var result = document.getElementById('result'),
      resultVal = result.value;
  result.value = resultVal == '' || resultVal == undefined ? c_id : resultVal', '+c_id;
}
  • 0
    показывает неправильный вывод
0

не уверен, что вы пытаетесь сделать там.

Вам не нужно передавать идентификатор функции, которую можно получить с .id в элементе html. то есть. document.getElementById('someElement').id;

Попытайтесь получить свой javascript во внешнем документе, так как вы собираетесь разместить свой код в строке, тогда вы можете также жестко идентифицировать идентификатор. (не предполагая, что очевидно)

0

Если я не ошибаюсь, я думаю, вы хотите что-то вроде этого:

$("div").click(function(){
     $("#result").val($("#result").val() + ", " + $(this).attr("id"))
})

или если вы хотите что-то похожее на ваш код, просто выполните это:

$("div").click(sample($(this).attr("id")));

function sample(c_id) 
{
    document.getElementById("result").val(document.getElementById("result").val() + ", " + c_id);

    var x = document.getElementById("result").val(); 

}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню