0

私は Javascript/HTML/C# Razor の初心者なので、このコードを理解するのに苦労しています。

現在、私は以下を持っています

<li class="control-group">
        <label for="autoReload" class="control-label">Auto Reload</label>
        <div class="controls">
            <div class="btn-group radioButtons radioToggleCollapse" data-toggle-id="#autoReloadExtra" data-toggle="buttons-radio">
                <button type="button" data-value="no" class="btn active">No</button>
                <button type="button" data-value="yes" class="btn">Yes</button>
            </div>
            <input type="hidden" class="radioHidden" value="'$'+@(Model.IsAutoReload ? "True" : "False")" id="autoReload" name="IsAutoReload">
        </div>
</li>

私が探しているのは、[いいえ] ボタンをクリックしたときです。そのテキスト ボックスの値を False に変更します。または、true をクリックした場合は、その値を true に変更します。

次の Javascript を見つけました。

   <script>
        $(document).ready(function(){

            $("#autoReload").on('change',function(){
                if ($(this).val() == 'yes') {
                    $(".saveCardSwitch button[data-value='true']").trigger('click');
                    $(".saveCardSwitch button").each(function(){
                        $(this).addClass('disabled').prop('disabled',true);
                    });
                }
                if ($(this).val() == 'no') {
                    $(".saveCardSwitch button").each(function(){
                        $(this).removeClass('disabled').prop('disabled',false);
                    });
                }
            });

        });
   </script>

ボタンの実際のデータ値を true/false に切り替えてみましたが、これを行うと、開いている隠しメッセージが表示されなくなったため、この時点で立ち往生しています。@(Model.IsReload ? "True" : "False" を呼び出して、post メソッドでコントローラーに値を返すときにも明確にしたいと思いますよね?

4

3 に答える 3

1

最初に必要なトグルに使用するボタンにイベントがバインドされていないようです。これを行うことができる onclick イベント

<button type="button" data-value="no" onclick="updateHidden(this.dataset.value)" class="btn active">No</button>
<button type="button" data-value="yes" onclick="updateHidden(this.dataset.value)" class="btn">Yes</button>

非表示の入力を更新するコードは次のとおりです。

function updateHidden(value){
value = value==="yes"?"TRUE":"FALSE";
document.getElementById("autoReload").value = value;
}
于 2013-07-10T18:01:27.773 に答える
1

As you are using Jquery, You can do it the following way:

$('.btn').click(function(){
   $('.radioHidden').val($(this).attr('data-value') === 'yes');
});

Fiddle

于 2013-07-10T17:45:42.040 に答える