javascript - 如何使用 Jquery 获取添加的输入字段的值?

标签 javascript jquery html input default-value

我正在尝试从添加的输入字段中获取值并将其显示在文本区域中。

单击 codeBtn 后将添加输入字段的值,并将其添加到文本区域中。我只设法从用 HTML 创建的第一个输入字段中获取值。

此外,我尝试添加新的值输入字段。

let titleValue2 = $('#titleInput2').val();

let contentValue2 = $('#contentInput2').val();


totalString += (titleValue1 + contentValue1 + titleValue2 + contentValue2)

但是当我只想显示 titleInput1 和 contentInput1 的值时,这将给我“未定义”。 基本上我正在尝试的是从每个添加的输入字段中获取值到文本区域。 谁能帮帮我吗?谢谢

示例 HTML 代码:

<div class="btn-section">
            <button class="addButton">+</button>
            <button class="codeButton">Generate code</button>
        </div>

<div class="container">
    <label for="">Titel:</label>
    <input type="text" id="titleInput1">

    <label for="">Content:</label>
    <input type="text" id="contentInput1">
</div>
<div class="newInputs">

</div>
<textarea name="" id="textInput" cols="30" rows="10"></textarea>

JQuery 代码:

let inputCount = 1;
let totalString = ''
const defaultInput_firstpart = `<label for="">Titel:</label>
<input type="text" id="titleInput`
const defaultInput_secondpart = `">
<label for="">Content:</label>
<input type="text" id="contentInput`
const defaultInput_lastpart = `">`

function addNewInputs() {
    $('.newInputs').append(defaultInput_firstpart + inputCount + defaultInput_secondpart + inputCount + defaultInput_lastpart)
}

function addValues() {
    let titleValue1 = $('#titleInput1').val();
    let contentValue1 = $('#contentInput1').val()
    let titleValue2 = $('#titleInput2').val();
    let contentValue2 = $('#contentInput2').val()


    totalString += (titleValue1 + contentValue1 + titleValue2 + contentValue2)

}

$(document).ready(function() {

    $('.addButton').on('click', function() {
       inputCount++;
       addNewInputs();

    })

    $('.codeButton').on('click', function() {
        addValues();
        $('#textInput').text(totalString)

    })

})

最佳答案

而不是使用动态创建的 id 使用类来获取输入值。 下面是例子

let inputCount = 1;
let totalString = ''
const defaultInput_firstpart = `<div class="nwlist"><label for="">Titel:</label>
<input type="text" class="titleInput" id="titleInput`
const defaultInput_secondpart = `">
<label for="">Content:</label>
<input type="text" class="contentInput" id="contentInput`
const defaultInput_lastpart = `"></div>`

function addNewInputs() {
    $('.newInputs').append(defaultInput_firstpart + inputCount + defaultInput_secondpart + inputCount + defaultInput_lastpart)
}

function addValues() {
    totalString = "";
	
	$(".nwlist").each(function(){
		totalString = totalString + $(this).find(".titleInput").val() + " " + $(this).find(".contentInput").val() + " ";
	})
}

$(document).ready(function() {
    $('.addButton').on('click', function() {
       inputCount++;
       addNewInputs();
    })
    $('.codeButton').on('click', function() {
        addValues();
        $('#textInput').text(totalString)
    })
})
<!DOCTYPE html>
<html>
	<head>
		<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
		<script src="https://code.jquery.com/jquery-3.4.1.js"></script>
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
	</head>
    <body>
        <div class="btn-section">
            <button class="addButton">+</button>
            <button class="codeButton">Generate code</button>
        </div>

		<div class="container">
			<div class="nwlist">
				<label for="">Titel:</label>
				<input type="text" class="titleInput" id="titleInput1">

				<label for="">Content:</label>
				<input type="text" class="contentInput" id="contentInput1">
			</div>
			<div class="newInputs">

			</div>
		</div>
		<textarea name="" id="textInput" cols="30" rows="10"></textarea>
    </body>
</html>    

希望对您有所帮助。

关于javascript - 如何使用 Jquery 获取添加的输入字段的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59321817/

相关文章:

jquery - 如何限制 'click'区域?

javascript - 吞下 jQuery AJAX 回调中抛出的异常?

javascript - 如何使用 jquery 创建过滤器控件?

javascript - 如何设置复选框按钮的样式使其看起来像线段

javascript - target _blank 打开后直接关闭

javascript - 自定义 SharePoint 2013 日历日名称

javascript - HTML多个ul>li使用jquery来回遍历

html - 如何在 CSS 中将元素固定在顶部?

javascript - Observable 返回单个数组

javascript - 改变 react 中的对象数组