Я перетаскиваю элемент в элемент ввода и устанавливаю имя элемента ввода равным идентификатору перетаскиваемого элемента. Затем я читаю значение имени входного элемента для хранения в БД. Это работает. Однако теперь я хочу сделать элемент ввода перетаскиваемым после его заполнения, чтобы при необходимости его можно было удалить. Я делаю это, помещая прозрачный div над элементом input, чтобы div можно было перетащить вместе с элементом input, чтобы удалить его. Теперь я не могу получить значение имени входного элемента (или значение имени входного элемента не установлено). Я полагаю, что последнее имеет место.
Это работает: Создайте таблицу:
newRows += "<table name ='activityTable'>";
newRows += "<tbody id='activity2Tablebody' name='test1'>";
newRows += "<tr>";
newRows += "<td class='dropValue' name='test2'>";
newRows += "<div class='dragabbleRemove'>";
newRows += "<input class='droppableItem activityWidth' name='test3' disabled></input>";//Droppable Activity Class
newRows += "</div>";
newRows += "</td>";
newRows += "</tr>";
newRows += "</tbody>";
newRows += "</table>";
При отбрасывании установите значение свойства name равным значению свойства id перетаскиваемого элемента. :
draggableId = (draggable.prop('id'));
droppable.prop('name', draggableId);
Получить значение свойства name:
alert ("$(this).find('input').attr('name'): " + $(this).find('input').attr('name'));//id value
Затем я помещаю прозрачный элемент div над элементами входов, чтобы его можно было перетащить, чтобы удалить его:
newRows += "<div class='dragabbleRemove'><div> </div>";
newRows += "<input class='droppableItem activityWidth' name='test3' disabled></input>";//Droppable Activity Class
newRows += "</div>";
Теперь это возвращает пустое значение:
alert ("$(this).find('input').attr('name'): " + $(this).find('input').attr('name'));//id value
Я подозреваю, что необходимо изменить следующую строку, чтобы установить значение имени входного элемента; однако, я не могу узнать, что нужно изменить (правильный код):
droppable.prop('name', draggableId);