Как обновить поле ввода из начальной загрузки, если поле не пустое? - PullRequest
0 голосов
/ 15 октября 2019

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

Это мой HTML-код

<table>
        <tbody>
            <tr>
                <td><input type="text" name="name"></td>
                <td><button class="remove">-</button></td>
            </tr>
            <tr>
                <td><input type="text" name="name"></td>
                <td><button class="remove">-</button></td>
            </tr>
        </tbody>
    </table>
    <button id="addRow">+ Add</button>
    <button id="getValues">Get Values</button>
    <br/><br/><br/>
    <input type="text" id="myMainPageInput" />

А это jquery

var html = '<tr><td><input type="text" name="name"></td><td><button class="remove">-</button></td></tr>';

$(function() {
    $('tbody').sortable();

    $('#addRow').click(function(){
        $('tbody').append(html);
    });

    $(document).on('click', '.remove', function() {
        $(this).parents('tr').remove();
    });

    $('#getValues').click(function(){
        var values = [];
    if ($('input[name="name"]').val().length != 0){
        $('input[name="name"]').each(function(i, elem){
            $("#myMainPageInput").val(($("#myMainPageInput").val() + ', ' + $(elem).val()).replace(/^, /, ''));
        });
     }
    });
});

Это заставляет меня дублироваться каждый раз, когда я нажимаю на кнопку.

1 Ответ

1 голос
/ 15 октября 2019

Думайте об этом по-другому: поскольку вы проверяете, является ли он пустым или не пустым , и продолжаете логику в любом случае (вот как японял, поправьте меня, если я ошибаюсь), а затем просто полностью очистите поле, прежде чем заполнять его.

$('#getValues').click(function(){
    $('input[name="name"]').val('');
    var values = [];
    $('input[name="name"]').each(function(i, elem){
        $("#myMainPageInput").val(($("#myMainPageInput").val() + ', ' + $(elem).val()).replace(/^, /, ''));
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...