如何从asp.net中动态生成的html文本框中获取值

时间:2014-06-06 05:46:04

标签: javascript asp.net

我想从我的aspx页面中动态创建的html文本框中获取值。首先,我想检查文本框是否存在。如果存在,那么我想从这些texbox中获取值。这是我用于动态创建文本框的代码

<script type="text/javascript">
    var counter = 2;
    $(document).ready(function () {

        $("#addButton").click(function () {
            if (counter > 3) {
                alert("Limit Exceeds");
                return false;
            }
            var $wrap = $('#TextBoxesGroup');
            var dynamichtml = '<div id="div' + counter + '"><div class="mcity"><label> Leaving from</label><input type="text" name="textbox' + counter + '" id="textbox' + counter + '" class="auto"/>  </div><div class="mcity"> <label> Going to</label>  <input type="text" name="textbox' + counter + '" id="textbox' + counter + 1 + '" class="auto"/> </div><div class="mcity"> <label> Going to</label>  <input type="text" name="textbox' + counter + '" id="textbox' + counter + 11 + '" class="auto"/> </div>';
            $wrap.append(dynamichtml);
            counter++;
        });

        $("#removeButton").click(function () {
            if (counter == 1) {
                alert("No more textbox to remove");
                return false;
            }

            counter--;
            $("#TextBoxesGroup").find("#div"+ counter).remove();
          //  $("#TextBoxesGroup").find("#textbox" + counter+1).remove();


        });
  $(".auto").live("focus", function () {

                  $(this).autocomplete({

                      source: function (request, response) {
                          var textval = request.term; // $(this).val();
                          $.ajax({
                              type: "POST",
                              contentType: "application/json; charset=utf-8",
                              url: "Home.aspx/GetAutoCompleteData",
                              data: "{'code':'" + textval + "'}",
                              dataType: "json",
                              success: function (data) {
                                  response(data.d);
                              },
                              error: function (result) {
                                  alert("Error");
                              }
                          });
                      }
                  });
              });
          });

</script>

此代码生成文本框生成,我使用json自动完成进程从我的数据库中获取数据。之后我尝试使用javascript将信息发送到另一个页面,我为此编写的代码在下面

<script type="text/javascript">
      $(function () {
          $("#btnPost").bind("click", function () {
              //Create a Form
              var $form = $("<form/>").attr("id", "data_form")
                            .attr("action", "Complete.aspx")
                            .attr("method", "post");
              $("body").append($form);

              //Append the values to be send
              AddParameter($form, "txtleft", $("#txtSearchleft").val());
              AddParameter($form, "txtright", $("#txtSearchright").val());

              //Send the Form
              $form[0].submit();
          });
      });
      function AddParameter(form, name, value) {
          var $input = $("<input />").attr("type", "hidden")
                                .attr("name", name)
                                .attr("value", value);
          form.append($input);
      }
    </script>

这适用于在我的页面中放置默认值的文本框。但对于在这些文本框之后动态生成的文本框,我知道如何将这些文本框的值发送到我的下一页

Javascript和asp.net专家请帮我解决此问题

由于

2 个答案:

答案 0 :(得分:0)

您可以使用FormCollection获取控件值。请注意,它适用于名称而非Id。

您需要保留计数并遵循控件名称的一些命名约定。

创建一个asp.net隐藏字段并保持控制计数。并根据隐藏字段的值获取。
Msdn link

答案 1 :(得分:0)

如果你要为你的表单分配一个id 您可以序列化您的表单并使用ajax发布它(如果您需要)

$.post("complete.aspx",$("#data_form").serialize(),function(response){
//react to the post here
});