.text()删除所有输入值

时间:2017-02-07 17:33:33

标签: javascript jquery html

我有一个表单,用户填写一组复选标记,当他们点击一个按钮时,输出是一系列笔记。在此表单中,我的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";
    }
});

编辑基于以下问题:

基本上,用户将复制并粘贴到预先格式化的电子邮件中的输出文本(我希望从此问题中获得)将是:

  

先生。人

     

以下是您未向我们发送的所有文件的列表

     

•此[此处的用户输入]信息是具有输入字段

的项目的示例      

•这是[此处的用户输入]具有输入字段的项目的另一个示例

1 个答案:

答案 0 :(得分:0)

.text()设置/获取&#34;文字&#34;在HTML元素中。它不是输入类型=&#34; text&#34;。接近你所取得的成就如下。我还包括了text()的示例用法。

此外,jQuery访问元素的孩子的方法是使用.children().find()(更深)。

&#13;
&#13;
$(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;
&#13;
&#13;