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

Posted

技术标签:

【中文标题】如何使用 Jquery 获取添加的输入字段的值?【英文标题】:How do I get the value of the added input fields with Jquery? 【发布时间】:2020-04-06 20:41:15 【问题描述】:

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

一旦点击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)

    )

)

【问题讨论】:

【参考方案1】:

而是使用动态创建的 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>    

希望它会有所帮助。

【讨论】:

以上是关于如何使用 Jquery 获取添加的输入字段的值?的主要内容,如果未能解决你的问题,请参考以下文章

如果使用虚拟键盘,Jquery 如何在输入字段中获取值

使用jquery在空输入字段中获取占位符的值?

jquery 想要获取 DOM 中的下一个输入元素

jquery如何判断多个输入框是不是有值

如何用jquery获取<input id="test" name="test" type="text"/>中输入的值?

jquery如何判断多个输入框是不是有值,在线等啊~~~~~~~~~~~~~~~