2017-02-07 69 views
-1

我有一種形式,用戶填寫一組複選標記,當他們單擊按鈕時,輸出是一系列註釋。在這種形式下,我的HTML中的div被設置爲提取出現在電子郵件中的項目列表。有時,用戶需要填寫其中一個項目的空白文本框。但是,當前編寫代碼的方式,我可以獲取頁面上項目的文本,但會刪除文本框中的所有文本。有沒有辦法來包含文本框呢?下面是代碼示例:.text()刪除所有輸入值

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

我建議你閱讀jQuery.text的文檔()。 「.text()方法不能用於表單輸入或腳本,要設置或獲取input或textarea元素的文本值,請使用.val()方法。」 – AmericanUmlaut

+0

你只使用'.text()'。因此文本將會出現.'.val()'用於從輸入類型獲得值 –

+0

該代碼本身不會刪除任何內容。什麼是「文檔」,你在做什麼?你想做什麼?提供一個[mcve] – charlietfl

回答

0

.text()設置/獲取「文本」的HTML元素內的物品的另一個例子。它不是輸入類型=「文本」。下面是接近您所獲得的示例。我還包含了一個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); 
 
    }); 
 
});
<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 />

+0

好吧,這告訴我如何隔離輸入。我試圖獲得的是聲明中的輸入內容。 – LiquidMusic1

+0

這是可能的。 (請參閱上面的修改示例)。但我不認爲這是正確的方法,因爲這些文本是靜態的。只需使用從輸入字段收集的動態信息填充郵件模板字符串即可。 –

+0

我知道這是一個笨拙的做法。但是,正如你所看到的,我很新。我在之前的代碼中發現了一些我可以稍後使用的代碼,但這需要我一些時間才能適應,並且客戶在此項目上的快速週轉時間。所以我非常感謝你的幫助。 – LiquidMusic1