вопрос по jQuery для генерации входных значений других входных значений


вопрос по jQuery для генерации входных значений других входных значений

02.10.2020 03:36:08 Просмотров 56 Источник

У меня есть простая форма билета, которая имеет скрытый ввод с последним серийным номером билета. BMPS3001 мне нужно, чтобы jquery генерировал значение newticket в не скрытом вводе, и когда они вводят количество для генерации скрипта билетов, сделайте как можно больше новых серийных номеров. например, в качестве входного значения количества скрипт генерирует новый серийный номер в начале BMPS3002,но если я изменяю количество 4,он генерирует еще три во входном массиве [BMPS3002,BMPS3003, BMPS3004, BMPS3005] . Последний вопрос, если я опубликую эту форму, могу ли я использовать ее для цикла в laravel DB::Begintrasaction? потому что мне нужно создать записи в БД для каждого билета нет одинаковых значений для других входов только серийный номер. различное значение. Спасибо

<form>
<input type="hidden" name="lastTicketValue" value=BMPS3001>
Generated ticked number
<input type="text" name="generatedticket[]" value="BMPS3002">
Quantity of tickects
<input type="number" value="">
Ticket value
<input type="text" value="">
</form>
У вопроса есть решение - Посмотреть?

Ответы - вопрос по jQuery для генерации входных значений других входных значений / jquery question generate input value by other input value

zOwN

02.10.2020 04:16:16

Следующий код обнаруживает изменение количества, генерирует серийные номера и печатает их внутри входного сигнала "generatedticket". Обратите внимание, что например вы поставили 2 внутри количество он будет генерировать "BMPS3002, BMPS3003", а затем вы положите 1, он будет генерировать "BMPS3004". Вы можете избежать этого, комментируя:

var lastEl = list[list.length - 1];
console.log("lastEl " + lastEl);
lastTicket.val(lastEl);

Например, вы можете вставить эти 3 строки кода в отправку формы.

HTML:

<form>
    <input type="hidden" id="lastTicketValue" value=BMPS3001>
    <input type="text" id="generatedticket" value="">
    <input id="ticket-quantity" type="number" value="">
    <input type="text" value="">
</form>

JS:

$("form").on("change", "#ticket-quantity", function () {
    var quantity = parseInt($(this).val());
    console.log(quantity);
    if (quantity > 0){
        var generatedTicket = $("#generatedticket");
        var lastTicket = $("#lastTicketValue");

        var lastTicketValue = lastTicket.val();
        var lastTicketNumber = (lastTicketValue
            .match(/\d+\.\d+|\d+\b|\d+(?=\w)/g) || [])
            .map(function (v) { return +v; }).pop();

        console.log("lastTicketValue " + lastTicketValue);
        console.log("lastTicketNumber " + lastTicketNumber);

        var list = [];
        for (var i = 1; i < quantity + 1; i++) {
            list.push(lastTicketValue.replace(lastTicketNumber, lastTicketNumber + i));
        }

        console.log(list);
        generatedTicket.attr("value", list);
        var lastEl = list[list.length - 1];
        console.log("lastEl " + lastEl);
        lastTicket.val(lastEl);
    }
});

JS Скрипка: https://jsfiddle.net/baj1pgoz/

Помочь в развитии проекта:
Закрыть X