我有一个表单,用户填写一组复选标记,当他们点击一个按钮时,输出是一系列笔记。在此表单中,我的HTML中的div设置为提取将显示在电子邮件中的项目列表。有时,用户需要为其中一个项填写空文本框。但是,当前编写代码的方式,我可以获取页面上项目的文本,但它会删除文本框中的所有文本。有没有办法包括文本框?这是代码示例:
HTML
<div>
<p>
<input type="checkbox" class="DocsNeeded"> This <input class="DocsNeeded" checked="checked" type="text" size="20" /> information is an example of an item with an input field<br><br>
</p>
</div>
<div>
<p>
<input type="checkbox" class="DocsNeeded"> This is <input type="text" size="20" /> another example of an item with an input field<br><br>
</p>
</div>
JavaScript函数
$(".DocsNeeded:checked:visible").each(function() {
if ($(this).is(":checked")) {
docs += "• " + $(this).parent("p").text().trim() + "\r\n";
}
});
编辑基于以下问题:
基本上,用户将复制并粘贴到预先格式化的电子邮件中的输出文本(我希望从此问题中获得)将是:
先生。人
以下是您未向我们发送的所有文件的列表
•此[此处的用户输入]信息是具有输入字段
的项目的示例•这是[此处的用户输入]具有输入字段的项目的另一个示例
答案 0 :(得分:0)
.text()设置/获取&#34;文字&#34;在HTML元素中。它不是输入类型=&#34; text&#34;。接近你所取得的成就如下。我还包括了text()的示例用法。
此外,jQuery访问元素的孩子的方法是使用.children()或.find()(更深)。
$(document).ready(function() {
$('#clickme').click( function() {
var docs = '';
$(".DocsNeeded:checked:visible").each(function() {
if ($(this).is(":checked")) {
docs += "• " +
$(this).parent("p").find('.label-1').text() + ' ' +
$(this).parent("p").find('input[type=text]').val() + ' ' +
$(this).parent("p").find('.label-2').text() + "\r\n";
}
});
$('#result').text(docs);
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<p>
<input type="checkbox" class="DocsNeeded"> <span class="label-1">This</span> <input class="DocsNeeded" checked="checked" type="text" size="20" /> <span class="label-2">information is an example of an item with an input field</span><br><br>
</p>
</div>
<div>
<p>
<input type="checkbox" class="DocsNeeded"> <span class="label-1">This is</span> <input type="text" size="20" /> <span class="label-2">another example of an item with an input field</span><br><br>
</p>
</div>
<button id="clickme">Click Me </button>
<hr />
<div id="result" style="white-space:pre"></div>
<hr />
&#13;