2015-10-14 117 views
0

感謝您的閱讀,我一直在尋找示例或教程,但我認爲我沒有正確的Google術語來查找有關此問題的教程。jQuery:從div元素獲取值附加到輸入提交

我喜歡做什麼;我想知道如何將多個產品標題從簡單的購物車系統/腳本附加到提交輸入值。

下面是我的HTML表單元素中的HTML標記,還有其他幾個輸入和文本字段,像電話,電子郵件和類似的東西,但這些字段已正常工作。我需要知道的是,如何在div元素中獲得這些產品名稱,並將它們附加到底部的隱藏輸入標籤的空值標籤內,以便我可以使用我的電子郵件腳本提交它們?

<div class="simpleCart_items"> 
    <ul> 
    <li class="itemRow row-0 odd" id="cartItem_dv-7"> 
     <div class="item-name">Product name 1</div> 
    </li> 
    <li class="itemRow row-1 even" id="cartItem_dv-3"> 
     <div class="item-name">Product name 2</div> 
    </li> 
    <li class="itemRow row-2 odd" id="cartItem_dv-11"> 
     <div class="item-name">Product name 3</div> 
    </li> 
    </ul> 
</div> 


<div class="hide"> 
    <input class="hide" type="hidden" name="multi_products" value="** product names here **"> 
</div> 

編輯添加了此代碼,將代碼封裝到一個表單.submit函數/事件中。但是,這並不工作..

$("form").submit(function(event) { 

    var itemArray = $(".item-name").map(function() { return $(this).text() }).get(), 

    commaSeparatedItems = itemArray.join(","); 

    $('input[name=multi_products]').val(commaSeparatedItems) 

}); 

回答

1

你可以得到項目的一個很好的陣列,然後加入他們的一個逗號:

var itemArray = $(".item-name").map(function() { return $(this).text() }).get(), 
//["Product name 1", "Product name 2", "Product name 3"]; 
    commaSeparatedItems = itemArray.join(","); 
//"Product name 1,Product name 2,Product name 3" 
+0

呸,對平局比我快,我幾乎我的答案准備好了不錯的拍攝。 – Trasiva

+0

另外** $('input [name = multi_products]').val(commaSeparatedItems)**設置隱藏的輸入值。 – alvarodms

+0

感謝您的幫助..我更新了代碼,但我沒有任何JavaScript或jQuery知道如何.. :( –