0

type=buttonフォーム送信時にボタンを表示する「最良の」方法を見つけようとしています。これらは送信ボタンではありませんが、計算のためにいくつかの js を起動しますが、それらの名前と値を投稿する必要もあります。

同じ名前のチェックボックスとjqueryでこのチェック済みステータスを更新することもできると思いますが、それは専門的ではないようで、チェックボックスも非表示にする必要があります。

これに対するエレガントな解決策はありますか?

Twitter Bootstrap、jquery、Ruby on Rails を使用。

このアプローチの主な目標は、タブレットなどで簡単に使用できるように、いくつかの大きなボタンをチェックボックスとして使用することです。

4

2 に答える 2

0

私見では、入力を非表示にすることに専門家以外のことは何もありません。チェックボックスを非表示にしたくない場合は、次を使用できますtype="hidden"

作業デモ(jsfiddle)

<button type="button" data-name="myName" class="btn" data-toggle="btn-input" data-target="#myButtonState" value="myValue">Click me</button>
<input type="hidden" id="myButtonState" />
$('[data-toggle="btn-input"]').each(function() {
    var $this = $(this);
    var $input = $($this.data('target'));
    var name = $this.data('name');
    var active = false;                  // Maybe check button state instead
    $this.on('click',function() {
        active = !active;

        if(active) $input.attr('name', name).val($this.val());
        else       $input.removeAttr('name');

        $this.button('toggle');
    });
});

チェックボックスのremoveAttr状態を模倣します(送信されたかどうかは関係ありません)。

于 2012-08-01T10:19:40.063 に答える
0

ajax を使用して目的を達成できます。ビューには、テキストボックス付きのボタンがあり、入力を入力してボタンをクリックします。IN Jquery onclick メソッドが呼び出され、値が ajax として渡され、計算を実行でき、結果が db に保存されます (必要な場合)。

ビューコードは次のようになります

<input type="button" id="submitt">
<div id="myDiv"> </div>

あなたのjqueryコードは次のようになります

 var content = '';
$(document).ready(function() {  
 $('#submitt').click(function(){


// do some calculations and store it in a variable nm
        $.ajax({url:"demo/"+nm, success:function(result){         
           myFunction(result);
           $("#myDiv").html(content);  // To output the result           
       }});
        return false;
});
});

    function myFunction(result)
{
             content = '';
            for (var i = 0; i < result.length; i++) {
                content += result[i].name;
                content += '<br/>';
            }
}

ルーティング ファイル内

match 'demo/:nm' => 'demo#newsy'

そして最後にコントローラーファイルで

def newsy
    @name = request["nm"]  
    new_emp = Client.new
    new_emp.name = @name
    new_emp.save
    @myys = Client.all
    render :json => @myys
end
于 2012-08-01T07:46:44.270 に答える