1

TwitterBootstrapとJoomla3.0を使用していて、デフォルトにリセットする必要があるフォームがあります。Simpleform.reset();は、radiobtnグループを除くすべての要素で機能します。

つまり、無線はリセットされますが、ラベルの状態は変化しません。リセットに失敗したことはほとんどありませんでしたが、btnクラス名があいまいなためバックファイアになっています。50を超えるラジオボタンオプションを含むフォームでidを使用してフィールドセットグループをターゲットにしようとしましたが、うまくいきませんでした。それらの色は異なってしまうなどです。

これについて助けていただければ幸いです

ここに例をいじる

http://jsfiddle.net/DZ7HL/31/

ラジオをbtn-groupに変換するためのjsは joomlaのデフォルトの管理者テンプレートからのものであり、削除/編集または変更することはできません。それが問題を引き起こしている場合は、そのjsが存在する状態でこれを機能させる方法を見つける必要があります。それが助けになるなら、私はその後にロードしている自分のjsファイルを持っています

4

2 に答える 2

1

joomlaがラベルで行う奇妙な「ロジック」のようです。いくつかのクラスをラベルに追加し、ラジオグループを簡単にリセットできますが、「手動で」追加されたクラスはそのままなので、それらを削除する必要があります。

すべての「デフォルト」は#2オプションですよね?これを行うための一般的な関数は次のとおりです

// FROM HERE IS CHANGABLE
function resetRadioGroup(groupname) {
switch($("input[name='"+groupname+"']:eq(1)").val()) {
    case '' : var css='btn-primary'; break;
    case '0': var css='btn-danger'; break;
    default : var css='btn-success'; break;
}
$("input[name='"+groupname+"']").next().removeClass('active btn-success');
$("input[name='"+groupname+"']:eq(1)").prop("checked", true).next().addClass('active '+css);
}

$('#reset_form').click(function() {
    $('#myform')[0].reset();
    resetRadioGroup('radio_test');
    resetRadioGroup('radio2_test');
})

http://jsfiddle.net/AtL5q/でフォークしました

更新 すべてのラジオグループがクラス btn-group のフィールドセットにある場合、resetRadioGroup関数の呼び出しを自動化できます。

$('#reset_form').click(function() {
    $('#myform')[0].reset();
    $('fieldset.btn-group').each(function() {
      resetRadioGroup($(this).find('input').first().attr('name'));
    });
})​

http://jsfiddle.net/3aU4F/

于 2012-10-29T00:50:20.613 に答える
0

私が行った解決策は

// FROM HERE IS CHANGABLE
$('#reset_form').click(function() {

    $('#myform')[0].reset();


    $(".btn-group label:not(.active)").change(function() {
        var label = $(this);
        var input = $('#' + label.attr('for'));

        if (input.prop('checked')) {
            label.closest('.btn-group').find("label").removeClass('active btn-success btn-danger btn-primary');
            if (input.val() == '') {
                label.addClass('active btn-primary');
            } else if (input.val() == 0) {
                label.addClass('active btn-danger');
            } else {
                label.addClass('active btn-success');
            }
        }
    }).change();




})​

ここに示されているように、jsfiddle.net/Yt9uX/41 があるので、ラジオに btn グループを使用する joomla 3.0 や bootsrtap フォームを使用する人にとって便利になると確信しています。

于 2012-10-29T02:06:33.910 に答える