-1

当谈到 jQuery 时,我是个新手,但感谢另一个 stackoverflow 成员,我有一些代码允许用户单击单选按钮并让它添加一个表格行,其中填充了他们单击的单选按钮链接的文本。这是jQuery代码:

$('.addRow').click(function() {
    var tr = $(
        '<tr><td class="cat"></td>' 
        + '<td class="sel"></td>'
        + '<td><textarea name="cmo-paragraph[' + count + ']">Click to edit (id ' 
        + count 
        + ')</textarea></td></tr>'
    );

    $('.mainTable > tbody:last').one().append(tr);
    tr.find(".cat").text($(this).closest("li.category").attr("title"));
    tr.find(".sel").text($(this).closest("li.select").attr("title"));
    count++;
});

这是广播列表的片段:

<li class="category" value="1" title="Chronic Pain Referral">Chronic Pain Referral
    <ul>
        <li class="select" title="Chronic referral">
            <input type="radio" class="addRow" id="radio1" name="modalities" value="1">
            <label for="radio1">Chronic referral</label>
        </li>
    </ul>
</li>

这将成功地每次在表格中添加一行,其中“类别”和“选择”表格单元格分别在前端填充“慢性疼痛推荐”和“慢性推荐”。

问题是我希望能够以表单形式提交此信息以保存到数据库。由于“count”变量,我可以遍历行,因此我可以捕获 textarea 数据,但当前未传递每行的“category”和“select”单元格的值。

我尝试了以下代码更改,但似乎不起作用:

$('.addRow').click(function() {
    var tr = $(
        '<tr><td class="cat"><input type="hidden" class="hiddenCat" name="category[' + count + ']"></td>' 
        + '<td class="sel"></td>'
        + '<td><textarea name="paragraph[' + count + ']">Click to edit (id ' + count + ')</textarea></td></tr>'
    );

    $('.mainTable > tbody:last').one().append(tr);
    tr.find(".cat").text($(this).closest("li.category").attr("title"));
    tr.find(".hiddenCat").text($(this).closest("li.category").attr("value"));
    tr.find(".sel").text($(this).closest("li.select").attr("title"));
    count++;
});
4

1 回答 1

1

似乎我没有很好地解释我的情况,但我确实想出了我正在寻找的答案,我将分享。

$('.addRow').click(function() {
        var tr = $(
        '<tr><td class="cat"></td>' 
        + '<td class="sel"></td>'
        + '<td><textarea name="paragraph[' + count + ']">Click to edit (id ' + count + ')</textarea></td><td><input type="text" name="catText[' + count + ']" class="hiddenCat"></td></tr>');
        $('.mainTable > tbody:last').one().append(tr);
        tr.find(".cat").text($(this).closest("li.category").attr("title"));
        tr.find(".hiddenCat").val($(this).closest("li.category").attr("title"));
        tr.find(".sel").text($(this).closest("li.select").attr("title"));
        count++;
      });

我必须添加另一个表格单元格以放入隐藏的文本框,因为它在我最初放置的单元格中被覆盖。现在,当用户单击“慢性疼痛转诊”选项时,一个隐藏的文本框会捕获该信息,以便我可以在表单中传递该信息。

于 2013-04-23T15:15:55.913 回答