2015-10-29 70 views
0

我試圖創建一個動態文本框,我可以使用它來允許輸入多個值。我爲此採用了javascript,認爲這會讓我獲取文本值並將其放入列表中,然後將其傳遞到我的Web應用程序。但是,代碼document.getElementById('<%=sidemgr.ClientID%>').value僅從其創建時獲取sidemgr.txt的初始值。撿起ASP文本框的更改值

如何獲取此文本框的更新值?我必須使用JavaScript文本框嗎?

這裏是JavaScript我

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#btnAdd").click(function() { 
      var value = document.getElementById('<%=sidemgr.ClientID%>').value; 
      var field = $("#field").val(); 
      var input = "<div id='listDiv' />"; 
      var newRow = "<tr><td>" + field + "</td><td>" + value + "</td></tr>"; 
      $('#controls').append(newRow); 
     }); 
    }); 
</script> 

和HTML

<div> 
     <asp:TextBox ID="sidemgr" runat="server"></asp:TextBox> 
      <br /> 
<input id="btnAdd" type="url" value="Add" /> 
     <asp:Button ID="btnProcess" runat="server" Text="Process" OnClick="Process" /> 
<table id="controls" cellpadding="10" cellspacing="10">   
     </table> 
    </div> 

C#代碼背後

protected void Process(object sender, EventArgs e) 
    { 
     var parameters = Request.Form["parameters"]; 
     if (parameters != null && parameters.Count() > 0) 
     {     
      parameters.Split(',').ToList(). 
       ForEach(p => 
       { 
        Response.Write(p + "<br />"); 
       }); 
     } 
    } 

請注意,其中一些來自我前一段時間發現的解決方案。

+0

@ Cal279好的電話,我注意到我自己卻忘了更新問題。話雖如此,「價值」應該在哪裏,只有「未定義」。我接受'field'目前是不確定的,因爲我還沒有使用它,但肯定'value'應該保存我的文本框的值? – Wolfish

+0

你可以嘗試使用JQuery來訪問它,看看是否有任何區別? - 例如$( '#<%= sidemgr.ClientID%>')VAL(); - 就像猜測一樣(我的推理沒有邏輯)。 – CalC

+0

@ Cal279沒有快樂。我確實恢復了「價值」,現在我已經改變爲div而不是表格了,我可以看到它。不幸的是,我不能使用div,因爲我需要將這些值傳遞給我的c#後端。 – Wolfish

回答

1

創建hiddenfield抱着你的服務器所需的值,你在做服務器犯規的Request.Form的值「參數」]

  $(document).ready(function() { 
 
       $("#btnAdd").click(function() { 
 
        var value = document.getElementById('<%=sidemgr.ClientID%>').value; 
 
        var field = $("#field").val(); 
 
        var input = "<div id='listDiv' />"; 
 
        var newRow = "<tr><td>" + field + "</td><td>" + value + "</td></tr>"; 
 
        $("#parameters").val($("#parameters").val()+value+",") 
 
        $('#controls').append(newRow); 
 
       }); 
 
      });
 <div> 
 
      <asp:TextBox ID="sidemgr" runat="server"></asp:TextBox> 
 
      <input type="hidden" id="parameters" name="parameters"/> 
 
      <br /> 
 
      <input id="btnAdd" type="url" value="Add" /> 
 
      <asp:Button ID="btnProcess" runat="server" Text="Process" OnClick="Process" /> 
 
      <table id="controls" cellpadding="10" cellspacing="10">   
 
      </table> 
 
     </div>

通過這種方式hiddenfield服務器將收到Request.Form [「參數」],如「value1,value2」,

或者您使用多個名爲「parameters []」的隱藏域,插入表中,並使用[R equest.Form [「parameters」]作爲列表

+0

謝謝,我會給你一個機會,然後回覆給你,大概明天吧。 – Wolfish

+0

嘿,這工作得很好,謝謝! – Wolfish