この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
}