2014-12-02 124 views
-3

我創建了一個div動態,每當我點擊「添加更多」按鈕。這是我建立了我的div,如下表:如何設置dymamically創建的div的名稱屬性?..在jquery

 <div id="row-template"> 
     <div class="cell" > 
      <input type="text" value="" class="part-number"/> 
     </div> 
    </div> 

現在我想爲這個div name屬性:

<div class="cell" ><input type="text" value="" class="part-number"/></div>

我會創建多個div S和我想整個值在我的java使用request.getParameter("The Part Number Text Box Name");

我的問題是我的java變量是nullString Part Number = request.get Parameter("The Part Number Text Box Name")

它給我空值,因爲我無法爲這個文本框設置名稱屬性,我必須設置唯一的名稱與索引,然後只有它很容易得到與索引的Java。

我要解決的問題是:

  1. 我想通過request.getParameter(...)與指數
  2. 的幫助,讓我的整個文本框的值到我的Java我希望得到我的所有行的長度有多少div我創建。

請幫我從這些問題......在此先感謝

+0

看到我想要得到多個創建的div值,所以我選擇了名稱參數來獲取所有的值與唯一的名稱幫助的java值索引值.. – spartans 2014-12-02 18:17:21

回答

-1

我不知道你是如何動態地追加格但在jQuery的它看起來就像這樣:

var count = 0; 
$("MyAddButton").click(function() { 
    var html = ""; 
    html += '<div id="row-template">'; 
    //put the name you want here 
    html += '<div class="cell" name="myName" ><input type="text" value="" class="part-number"/</div>' 
    html += '</div>'; 
    $("WhereToAppend").append(html) 
    count++; 
}); 
+0

right @Mathieu Labrie父母我設置該div的屬性名稱ID,但我無法得到它的jave其使用req.getParameter時給予null值,所以我怎麼能克服這一點?... – spartans 2014-12-02 17:47:08

+0

我gessing,getParameter查找查詢字符串。當提交表單時,div不會在查詢字符串中傳遞,只有輸入。您可以將該值放入隱藏字段中。 – 2014-12-02 18:00:51

+0

否@Mathieu Labrie父母如果直接放入(),這個值會進入req.getParam,但如果設置了name屬性與目前的指數值,當時它並沒有把這個值得到「空」.. – spartans 2014-12-02 18:30:58

-1

我可能沒有給你一個完整的答案,但希望這會使你朝着正確的方向前進。

1) 如果你的頁面中調用這樣的:

http://<your_server>:<your_port>/mytest.jsp?crazyParamName=crazyParamAnswer

您可以使用:

String answer = request.getParameter('crazyParamName');

和可變answer將是一個String與價值:crazyParamAnswer

U用它來創建你的新輸入,通過像這樣的腳本插入頁面<%= anwser %>

2)你可以計算你點擊'添加更多'按鈕時創建的div數量(使用jQuery,我假設)

var numberOfCells = $('#row-template').find('.cell').size();

所以,當你創建一個新的按鈕,只需添加一個現有numberOfCells並使用它作爲你的索引。每次點擊按鈕時,索引都會增加1。

+0

照顧評論爲什麼downvote? – ochi 2014-12-03 20:12:12

0

您是否嘗試將name屬性添加到輸入元素而不是div元素?

爲了從以前的答案借位:

var cnt = 0; 
    $("#mybutton").on("click", function() { 
     var html = ""; 
     html += "<div id='row-template'>"; 
     html += "<div class='cell'>"; 
     html += "<input name='myName" + cnt +"' type='text' value='' class='part-number'/>"; 
     html += "</div>"; 
     html += "</div>"; 
     console.log(html); 
     $("#WhereToAppend").append(html); 
     cnt++; 
    }); 

上面的代碼是jQuery代碼,將增加一個新的輸入(和周圍DIV)元件到DOM。它會通過將「cnt」的值附加到字符串「myName」來爲每個輸入元素賦予一個唯一的名稱,實際上每次觸發此操作時都會給輸入元素一個名稱「myName0」,「myName1」,「myName2」特定的點擊事件。

從輸入元件的W3Schools的定義:

name屬性指定的元素的名稱。 name屬性用於引用JavaScript中的元素,或者在提交表單後引用表單數據。 注意:只有具有name屬性的表單元素在提交表單時將傳遞其值。

+0

所以你可以給我任何解決方案,讓我得到多個創建的文本框值爲Java使用req.getParam ... – spartans 2014-12-02 18:42:56

+0

如果每個輸入元素有一個名稱屬性,他們將顯示在後參數。無論您使用的是java還是.net,都無關緊要。您需要每個INPUT元素都具有名稱屬性 - 而不是DIV元素。 – whipdancer 2014-12-02 19:00:22

相關問題