JSFiddle - React, Tailwind, and code Playground

HTML

<input type="text" id="payment_term" />
<button id="add_payment_terms">Add</button>
<div id="payment_term_area"></div>

JavaScript

// create cache of jQuery objects
var add_payment_terms_button = $('#add_payment_terms');
var payment_term_input = $('#payment_term');
var payment_term_area = $('#payment_term_area');
var default_payment_values = ['first value', 'second value', 'third value', 'forth value', 'fifth value'];
var default_other_value = 'default value';

// bind to generate button
add_payment_terms_button.on('click', generatePaymentTerms);

function generatePaymentTerms(){
    var requested = parseInt(payment_term_input.val(), 10);
    // start i at 1 so that our label text starts at 1
	for (i = 1; i <= requested; i++) {
        // use data-text to hold the appended text to the label index
		payment_term_area.append(
		'<div class="col-lg-12 product_wrapper">' +
			'<div class="col-lg-12 form-group">' +
				'<label data-text=" Payment"></label>' +
				'<input type="text" class="payment_term form-control" name="PaymentTerm[]"/>' +
			'</div>' +
			'<a href="#" class="remove_field btn btn-danger pull-right">cancel</a>' +
		'</div>');
	}
    // call the function to set the labels
	updateProductIndexes();
}

function updateProductIndexes(){
    // get all labels inside the payment_term_area
	var paymentLabels = payment_term_area.find('.product_wrapper label');
	for(var x = 0, len = paymentLabels.length; x < len; x++){
        // create jQuery object of labels
		var label = $(paymentLabels[x]);
        // set label text based upon found index + 1 and label data text
		label.text( getOrdinal(x + 1) + label.data('text'));
		
		// either set the next input's value to its corresponding default value (will override set values by the user)
		label.next('input.payment_term').val(default_payment_values[x] || default_other_value)
		
		// or optionally, if value is not equal to blank or a default value, do not override (will persist user values)	
		/* var nextInput = label.next('input.payment_term');
		var nextInputValue = nextInput.val();
		if(nextInputValue === '' ||...