2

そのフィールドセットの凡例の値を保持するフィールドセットに隠しフィールドを追加する方法が必要です。

各フィールドセットの凡例の後に追加された入力フィールドを取得できますが、非表示フィールドの値に渡されたフィールドセットの値を取得できません。

これが私がこれまでに持っているものです:

<script type="text/javascript">
var theLegend = $('legend');  
    $('<input type="hidden"name="hiddenList[]" value="' + theLegend.val() + '">').insertAfter('legend');
</script>

全体として、私が達成しようとしているのは、フィールドセットの凡例の値を取得してデータベースに渡すことです。隠しフィールドがそれぞれのフィールドセット内にある必要があります。フォームは CMS 内のフォーム ビルダーを使用して構築されており、フォーム ビルダーのコードを「ハッキング」することはできないため、jquery/javascript を使用してこれを行う方法が必要であり、私はほとんど jquery 初心者です.. .

4

2 に答える 2

3

私は次のようなものを提案します:

$('legend').each(
    function(i,e){
        var that = $(e),
            parent = that.closest('fieldset'),
            text = that.text();
        $('<input />', {'type' : 'hidden', 'name' : 'hiddenList[]', 'value' : text})
            .appendTo(parent);
    });

JSフィドルデモ

出力を表示するには、テキストを右クリックして「要素の検査」を実行しlegendます。

あなたが抱えていた問題の1つは、要素のテキストval()を取得するために使用していたことです(、のみ、要素には/があります)が、この場合は必要です。inputtextareavalueval()text()

于 2012-10-29T21:16:10.273 に答える
3

凡例を選択したら、.val() の代わりに .text() メソッドを使用します。

theLegend.text()

于 2012-10-29T21:19:29.497 に答える