-1

jquery selectable を使用して、醜いチェックボックスを置き換えようとしています。このコードを form_for に追加しましたが、tag_list 配列をコントローラーに戻す方法がわかりません。

    <meta charset="utf-8" />
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.1/themes/base/jquery-ui.css" />
    <script src="http://code.jquery.com/jquery-1.8.2.js"></script>
    <script src="http://code.jquery.com/ui/1.9.1/jquery-ui.js"></script>
    <link rel="stylesheet" href="/resources/demos/style.css" />

    <style>
    #feedback { font-size: 1.4em; }
    #selectable .ui-selecting { background: #FECA40; }
    #selectable .ui-selected { background: #F39814; color: white; }
    #selectable { list-style-type: none; margin: 0; padding: 0; width: 60%; }
    #selectable li { margin: 3px; padding: 0.4em; font-size: 1.4em; height: 18px; }
    </style>
    <script>
    $(function() {
        $( "#selectable" ).selectable({
            stop: function() {
                var result = $( "#select-result" ).empty();
                var tag_names = []
                $( ".ui-selected", this ).each(function() {
                    var item = this.innerHTML;
                    result.append( ( item ) );
                    tag_names.push( item )
                });
            }
        });
    });
    </script>
</head>
<body>

<p id="feedback">
<span>Tags:</span> <span id="select-result">none</span>.
</p>

<ol id="selectable">
    <%@tags.each_key do |tag| %>
        <li class="ui-widget-content"> #<%=tag%> </li>
    <%end%>
</ol>
4

1 に答える 1

0

私が見ることができる2つの方法:

  1. まず、フォームに隠しフィールドを作成します。tag_namesそして、 Jquery を介してその値を入力します。フォームの送信中に自動的に送信されます。
  2. 次に、GLOBAL JS 変数を作成できますtag_names。上記のように入力され、Jquery のフォーム送信アクションをオーバーライドして を含めますtag_names。このような :

    $("#myForm").submit(function() {
         $(this).append("<input type='hidden' name='tag_names' 
         value='"+tag_names+"' />");
         $(this).submit();
    })
    
于 2012-11-18T10:01:23.097 に答える