1

このiPhoneスタイルのチェックボックスを使用しています。デフォルトでは、すべてのチェックボックスがオンになっています。チェックを外すと、フォームとすべてを含むモーダルが表示されます。このモーダルを閉じると、チェックボックスが再び有効になります。

これは、チェックボックスが false に変更されたときにモーダルを表示する JS です。

$(window).load(function() {
  var onchange_checkbox = $('.on_off :checkbox').iphoneStyle({
    checkedLabel: 'Confirm',
    uncheckedLabel: 'Edit',
    onChange: function(elem, value) {
        if($(elem)[0].checked==false){
            $('.modal').show();
            $("body").append('<div class="modalOverlay">');
        }
    }
  });
});

これはチェックボックスの表です:

%{for(int i=0;i<confirmAtt.size ();i=i+9){}%
<tr>
<td>${confirmAtt.get(i)}</td>
<td>${confirmAtt.get(i+1)}</td>
<td>${confirmAtt.get(i+2)}</td>
<td>${confirmAtt.get(i+3)}</td>
<td>${confirmAtt.get(i+4)}</td>
<td>${confirmAtt.get(i+5)}</td>
<td>${confirmAtt.get(i+6)}</td>
<td>${confirmAtt.get(i+7)}</td>
<td>${confirmAtt.get(i+8)}</td>
<td class="modalInput on_off"><input type="checkbox" id="on_off_${i}"
    checked="checked" /></td>
</tr>
%{}}% 

閉じるボタンのあるモーダル:

    <div class="modal" id="aModal">
        <p>
            <button class="close" onclick="foo();">Close</button>
        </p>
    </div>

この関数を呼び出します:

function foo(){
    $('.modal').hide();
    $('.modalOverlay').remove();
    onchange_checkbox.prop('checked', !onchange_checkbox.is(':checked')).iphoneStyle("refresh");
    //tried changing this line to
    //$('.on_off').attr("checked" , true);
    //doesn't work
}
4

1 に答える 1

2

チェックボックスをオンに戻したい場合は、次のコードを使用できます。

$(window).load(function() {

      var onchange_checkbox = ($('.on_off :checkbox')).iphoneStyle();


      onchange_checkbox.prop('checked', !onchange_checkbox.is(':checked'))
      .iphoneStyle("refresh");


});

http://jsbin.com/urocug/1/

アップデート

申し訳ありませんが、コード内でこれを実装しようとしたことがわかりました。$(window).load(function() {問題は、スコープ外の同じ変数にアクセスしようとしているときに、チェックボックスを変数として宣言していることです。$(window).load(function() {


foo(){}理想的には、関数を次のように移動する必要があります$(window).load(function() {

于 2012-08-17T07:21:45.233 に答える