jQuery — поиск поля строки для значения в режиме редактирования

#javascript #jquery #ajax #function #parameters

#javascript #jquery #ajax #функция #параметры

Вопрос:

При нажатии кнопки редактирования строки таблицы открывается модальная форма.

Я выбираю текущие значения этой строки, чтобы они могли быть значениями по умолчанию для этих полей формы при открытии modal.

Поскольку я новичок в jQuery, я не могу понять, как передать эти значения другим методом.

Моя функция:

 var $fruitForm = $('#edit-form')

$('.fruit_edit').on('click', function(event) {

    // Get the data-id value of the modal link.
    var id = $(this).data('fruit_id');

    // Set the hidden input field with the id.
    $('#fruit_id').val(id);

    var $row = $(this).closest('tr');

    // Here I am finding row value on click
    var tableFruitName =  $("a[data-fruit_id=" id "]").closest("tr").find('.tableFruitName').text() 

    event.preventDefault();
});

// Listen for submit instead of click.
$fruitForm.on('submit', function(event) {
    event.preventDefault();

    // Get the values from the form.
    var $form = $(this);
    var id = $form.find('input[name="fruit_id"]').val();
  
    I want for the value from upper 'onclick' to be defined in from input here
    var fruitName = $('#fruitName').val(tableFruitName);

    $.ajax({
        type: 'PATCH',
        url: '/fruit/edit',
        data: JSON.stringify({
            'id' : id,
            'fruitName' : fruitName
        }),
        processData: false,
        contentType: 'application/json-patch json',
        success: function () {
            $("#fruit-table").load(location.href   " #fruit-table");
            $('#editFruit').modal('hide');
        },
        error: function (xhr, status, error) {
            var ErrorMessage = JSON.parse(xhr.responseText);
        }
    });
});
  

Объяснение моего рабочего процесса находится в комментариях. Я не знаю, как передать захваченное значение в другом методе, где определен ввод.

   <tr>
     <td class="text-center"> {{ fruit.id }} </td>
     <td class="text-center tableFruitName"> {{fruit.fruitName is empty ? "N/A" : fruit.startDate }}</td>
                              
      <td class="td-actions text-center">
         <a href data-toggle="modal" data-target="#editFruit" data-fruit_id="{{ fruit.id }}" class="btn btn-warning fruit_edit">
             <i class="fa fa-fw fa-pencil"></i>
          </a>
      </td>
   </tr>
  

Комментарии:

1. Можете ли вы показать свою структуру таблицы?

2. Привет, попробуйте вот так -> $("a[data-fruit_id=" id "]").closest("tr").find('.tableFruitName').text()

3. Да, когда я console.log(), он показывает точное значение, но когда я открываю значение модального свойства, оно не вставляется в это поле формы? Вот в чем главная проблема .. :/ @Swati

4. Объявите это var tableFruitName; глобально вне вашего обработчика событий, тогда его значение будет доступно во всей вашей программе. Также о каком поле формы вы говорите?