【问题标题】:jquery pull textarea values based on which checkboxes were checkedjquery所有textarea值基于哪些复选框被选中
【发布时间】:2013-11-19 14:44:08
【问题描述】:

我正在开展一个项目,该项目涉及返回所选复选框的 id 以及所选复选框的相应文本区域字段中的文本。数据是动态显示的,到目前为止我的复选框和文本区域的 jquery 都可以工作:

    var noteList = $("textarea[name='revokeNotes']").map(function(){
            return this.value;
    }).get().join();
    var revokeList = $("input[name='revoke']:checked").map(function(){
            return this.id;
    }).get().join();

但是我正在取回所有注释字段,我不确定如何最好地遍历它们以找到正确的注释,因为它们的 id 不是连续的,而是基于它们在被拉出的表中的 id从。最新版本显示代码如下:

<td><textarea name=\"revokeNotes\" id=\"".$v["id"]."\" cols=\"30\"rows=\"3\">".$v["notes"]."</textarea></td>
<td><input type=\"checkbox\" id=\"".$v["id"]."\" name=\"revoke\" value=\"".$v["id"]."\" /></td>

有没有办法从这个状态达到我的目标,或者我应该使用另一个 jquery 函数,类似于 .map()?我考虑过使用复选框中的 id 字段来遍历选定的注释并将它们推送到一个数组中,但我不确定 1)是否可行以及 2)如何做到这一点。

我需要以某种形式返回数据,要么是一个数组,要么是我可以在 php 中爆炸的东西来创建一个数组,因为我在 ajax 中传递一个值,因为没有设置将显示的最大或最小行数每个用户。地图一直在工作,直到我向它扔了一些逗号。加分。

【问题讨论】:

    标签: php jquery loops checkbox textarea


    【解决方案1】:
    var noteList = $.map(
                     $("textarea[name='revokeNotes']").filter(function() {
                          return $(this).closest('td')
                                        .next('td')
                                        .find('input[type="checkbox"]')
                                        .is(':checked');
                      }), function(el) {
                              return el.value; 
                   }).join();
    

    【讨论】:

      【解决方案2】:

      adeneo 的回答很棒,我只是提出以下改进:

      • 如果可能,请使用类选择器(如“.revoke-notes-area”),因为它们比 DOM + attr 选择器更快
      • 假设这是一个表格,并且每行有一个 textarea 复选框组合,您可以遍历树到最近的 &lt;tr&gt; 解耦 JS,这取决于复选框位于 DOM 中的文本区域之后。

        var filterMethod = function() {
          $(this).closest('tr').find('.revoke-checkbox').is(':checked');
        };
        var mapMethod = function(el) {
          return el.value;
        };
        
        var nodeList = $.map($('.revoke-notes-area').filter(filterMethod), mapMethod);
        

      没有理由不能或不应该将 filter 和 map 方法内联,我只是将它们拆分为变量,以便在此处阅读。

      你可以在这里查看我的 codepen:http://codepen.io/aaron/pen/eIpby

      【讨论】:

        猜你喜欢
        • 2023-04-04
        • 1970-01-01
        • 2011-10-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-18
        • 2018-03-11
        相关资源
        最近更新 更多