Как вы отправляете сообщение Socket IO от нажатия кнопки, когда в каждой строке таблицы Bootstrap есть кнопка с уникальным идентификатором? - PullRequest
1 голос
/ 18 января 2020

Я создал Flask веб-приложение, которое использует таблицу Bootstrap для отображения информации. В каждой строке пользователь может изменить раскрывающийся список и обновить текстовую область заметок. Я хочу, чтобы оба эти действия могли обновлять на всех подключенных клиентах обновленную информацию вместо того, чтобы обновлять sh страницу.

Мой первый вопрос: если Socket IO является правильным API, я должен Использование.

Я успешно использовал Socket IO для обновления одного раздела заметок на другой веб-странице.

HTML:
<form method="POST">
<div class="input-group">
    <textarea class="info form-control custom-control" rows="2" style="resize:none" id="noteTextArea" 
        name="note">{{ milestone.info }}</textarea>
    <button id="milestoneInfo" class="input-group-addon btn btn-outline-secondary">Update</button>
</div>
</form>

JAVASCRIPT:
$( '#milestoneInfo' ).on( 'click', function()
{
    let milestone_info = $( 'textarea.info' ).val()
    let milestone_id = '{{ milestone.id }}'
    console.log ( milestone_info )
    socket.emit( 'milestone info', { milestone_info : milestone_info, milestone_id : milestone_id } )
} )

Я считаю, что это не работает в таблице, потому что вы можете кнопки с одинаковым идентификатором И я получаю это в консоли отладки в VS Code: «Найдено 9 элементов с неуникальным идентификатором #approved»

$( '#approved' ).on( 'click', function()
{
    let change_id = $( 'textarea.name' ).val()
    console.log ( 'Approval for ' + change_id )
    socket.emit( 'change approval', change_id )
} )

Каждая строка имеет определенный c ID, связанный с ним, который я положил в поле name текстовой области Bootstrap. Итак, у меня есть что-то уникальное в каждой строке для ссылки, но я просто не уверен, как это сделать в JavaScript из действия щелчка.

...