【问题标题】:Get the Text box and drop down value inside a Table which is created dynamically using JQuery获取使用 JQuery 动态创建的表中的文本框和下拉值
【发布时间】:2013-06-15 15:40:05
【问题描述】:

请帮忙,我是 jquery 的新手。有 3 个表格,它们将填充文本框并动态下拉“选择”

<table class="primaGridViewSmall" border="0" cellpadding="0" width="95%"
    id="shareAddUserMember" runat="server" clientidmode="Static" align="left">
</table>

<table class="primaGridViewSmall" border="0" cellpadding="0" width="95%"
    id="shareAddUserMemberA" runat="server" clientidmode="Static" align="left">
</table>

<table class="primaGridViewSmall" border="0" cellpadding="0" width="95%"
    id="shareAddUserMemberB" runat="server" clientidmode="Static" align="left">
</table>

表格可以有很多文本框和通过单击“添加更多”动态添加的“选择”下拉菜单。 其实我想从文本框中实现这样的事情并在该表中选择

var array = [];
var j = 0;
$('#shareAddUserMember tr').each(function () {
    var memberID = ?  // Dynamic_textbox_value;
    var privilage = ? // Dynamic_drop_down_selected value ie type <select>
    if (memberID != "") {
        array[j] = memberID + ":" + privilage;
        j++;
    }
});

我试过这个来获取文本框的值,我也需要选择

$('#shareAddUserMember tr').each(function () {
    $('input[type=text]').each(function (i, item) {
    var grade = $(item).val();
        alert(grade);
    });
});

但上面的代码将获取页面中的所有输入类型。我有多个表。我需要在表 shareAddUserMember 内动态创建的文本框中获取值(id 是动态生成的)。

我只需要具有 id ="shareAddUserMember" 的表内的文本框的值,而不是 shareAddUserMemberA 或 shareAddUserMemberB。

$('#shareAddUserMember tr').each(function () {
     // ---what to write here  to fetch the textbox and drop down selected values-----------
});

实际上我想从文本框中实现一些类似的东西并在该表中输入类型选择

var array = [];
var j = 0;
$('#shareAddUserMember tr').each(function () {
    var memberID = ?  // Dynamic_textbox_value;
    var privilage = ? // Dynamic_drop_down_selected value ie type <select>
    if (memberID != "") {
        array[j] = memberID + ":" + privilage;
        j++;
    }
});

在 tr 里面有下拉选择示例 DOM

<table class="primaGridViewSmall" border="0" cellpadding="0" width="95%"
    id="shareAddUserMember" runat="server" clientidmode="Static" align="left">
  <tr id="EmailIDUserRow1">
    <td style="text-align: center; width: 3%;">
      <input type="hidden" id="EmailUserMemberID1" name="EmailUserMemberID1" />
    </td>
    <td align="left">
      <select style="width: 150px" name="select1" id="select1">
        <option value="">Select</option>
        <option value="1">Full Access </option>
        <option value="0">View Only</option>
      </select>
    </td>
  </tr>
</table>

【问题讨论】:

  • 只需将 assign ID 分配给您的输入,然后您就可以从一个文本框中获取值,或者如果您的文本框在表格内,那么您可以使用以下内容:$('#shareAddUserMember tr input[type=text]').each(function (i, item){}

标签: jquery


【解决方案1】:

遍历#shareAddUserMember中的每个tr元素:

$("#shareAddUserMember tr").each(function() {
  // `this` refers to the current tr element

  // Get the input box and select that are inside the current tr element using
  // $(this).find()
  var memberID = $(this).find("input:text").val();
  var privilege = $(this).find("select").val();

  if (memberID !== "") {
    // ...
  }
});

希望能帮助或至少为您指明正确的方向。

【讨论】:

  • 我也想要下拉选择的值 (
  • 如果你用伪代码更新你的问题会很有帮助,因为 cmets 不支持代码格式化。除此之外,下拉菜单和输入框之间是否存在一对一的映射?查看一些示例 HTML 也会很有帮助。
  • 我已经更新了问题,谢谢 没有 1to1 映射,只有一个文本框和输入类型选择下拉列表,只需用户从下拉列表中选择并在 UI 的文本框中输入一些评论.
  • 在文本框和选择中都没有,更新了问题,检查最后一段:(
  • @avengerr 已编辑以反映您的 DOM 结构。我会向您指出 jQuery 文档 (api.jquery.com),以获取有关 each() 和 find() 工作原理以及其他迭代/过滤 DOM 元素的方法的更多信息。
【解决方案2】:

试试这个代码:

$('#shareAddUserMember tr input[type=text]').each(function () {            
     // do some of your magic in here :)
});

既然你已经更新了你的答案,你可以尝试这样的事情(我没有测试这个代码)

$('#shareAddUserMember').each(function () {            
        var memberID = $('#shareAddUserMember tr input[type=text]').val();
        var privilage = $("#shareAddUserMember tr select option:selected").text();
        if (memberID != "") {
            array[j] = memberID + ":" + privilage;
            j++;
        }
    });

【讨论】:

  • 你做得很好,我还想获得“select”类型的选定值,即,在每个语句中下拉该表,然后呢?我想实现一些像这样 $('#shareAddUserMember tr').each(function () { var memberID = textbox value; var privilage = drop down selected value if (memberID != "") { array[j] = memberID + ":" + privilage; j++; } });
  • 不工作,它只循环一次,只有第一个文本框值正在获取,并将所有下拉值附加到特权中。我想要一个一个并将它存储到数组中:(
猜你喜欢
  • 2019-01-19
  • 2012-12-23
  • 2014-01-21
  • 2016-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多