Topへ

開発ブログ(Blog)

jqueryでチェックボックスをラジオボタンのように振る舞う方法

jqueryでチェックボックスをラジオボタンのように振る舞わせる方法

つい先日、jqueryの複数のバージョン使用していたwebアプリを整理していたところ、実装済の「チェックボックスをラジオボタンのように振る舞う処理」が誤動作するようになったため修正しました。その内容を掲載しておきます。
 
         $("input[id^='ALART_CHKBOX_']").on("click",function () {
             var flag = $(this).prop('checked');
             var reChecked = $(this).attr('checked'); //チェックされているチェックボックスを再度クリックした結果'undefined'が格納
             $("input[id^='ALART_CHKBOX_']").attr('checked', false);
             if (flag || typeof reChecked === "undefined") {
                 $(this).prop('checked', true);
             }
);
※checkboxやradioのチェック状態を調べる際にはattrではなくpropを使うのが良いとの記事を見かけ、調べたところ それぞれの実行結果の違いがあることがわかりました。 普通にチェックされている以外の項目を選択した場合はいいのですが、既にチェックされている項目を再度チェックするとflag=falseになり、reChecked=undefinedになります。 flgだけで判断するとチェックが外れてしまうことになりますので注意してください。
  チェックした時 チェックを外したとき
prop true false
attr checked undefined

<サンプル>

アラーム  
 

 

Microsoft SQL Serverの2008以前のバージョンを使用していて、webサーバーを運用されている場合の注意

2016412日にSQL Server 2005の延長サポートが終了します。(2008は2019年1月8日延長サポート終了)

SQL Serverの2008以前のバージョンですとweb Editionというものが存在していて、インターネットユーザ毎にCALを購入する必要のないエディションがあったのですが、2012以降はweb editionという考え方はなくなったようです(※ただしプロバイダ向けには存在している様子)。2012以上のstandardにバージョンを上げようとした場合、以下の選択肢しかないとのことです。
 
SQL Server 2014ライセンス価格
  ライセンス   Open Business Select Level A
選択肢1 コアライセンス ※購入単位は4コア単位なのでコアライセンスで購入する場合、667,000 円×2で1,334.000円が必要になる。 667,000 円
(2 コア パックの価格)
436,400 円
選択肢2 Standardのサーバー ライセンス   153,000 円 109,200 円
クライアント アクセス ライセンス (CAL) ユーザーあるいはデバイス数だけ必要
※認証処理にてログインする機能を提供する場合、そのユーザ数分必要になります。
  33,300 円 25,500 円

これだと、中小企業で多数の会員(認証が必要な)を持つwebサイトを運営している場合、かなりの負担増になると思われます。

そこで、いろいろ検討した結果をまとめました。
    メリット デメリット
選択肢1 SQL 2005をサポート切れのまま使い続ける 追加コストがかからない サポートがない以上、bugFixのupdateはなくなります。
選択肢2 SQL Server2014のExpressエディションに移行する 追加コストがかからない。 【機能制限がある】
主な制限
・dbのサイズが10GB
・利用可能なデータベースエンジンのインスタンス毎のメモリサイズが最大1GB
に限定されます。
・タスクスケジューラが利用できない。
※アクセス数の少ない小規模サイトなら問題なさそうです。
選択肢3 MySQLやProstgreSQLなど他のフリーのDBへ移行する 一回修正してしまえば、運用コストは低くなる。 プログラムのDBとのI/O部分の修正コストがかかる。
選択肢4 SQL Server Webエディションを利用できるVPSへ移行する 月額費用は発生するが、通常のライセンス契約するよりは安く抑えられる
※2015/4/8以降「さくらのVPS for Windows Server」でSQL ServerのWeb Editionだと4コアで初期費用:20,000円(税抜)月額2,400円で利用できます。
オンプレミス環境では利用できない

今後、別の方法が見つかった場合は追記していきます。

Visual Studio 2013にUpdate4とWeb Essentials 2013をインストールすると便利な機能が利用できます その①

Visual Studio 2013にUpdate4とWeb Essentials 2013をインストールすると便利な機能が利用できます

①jsonデータを画面に表示して右クリックで「アンミニファイ」をクリックすると圧縮されたjsonデータが見やすい形に成形されます。(update4)

<実行前>


<画面上で右クリックし、アンミニファイを実行すると>
以下のように見やすい形式に変換してくれます。

※逆のミニファイの機能は「ドキュメントのフォーマット」で実現できると書いてありましたが、なぜかもとに戻りませんでした。
 

②ブラウザーリンク(Web Essentials 2013をインストールしなくても使用できるようですが、Web Essentials 2013をインストールすると拡張機能が使用できるようです)

一度に複数のブラウザを表示して、ソースを更新したのち一気にすべてのブラウザに更新内容を反映させる方法です。
下記のように 「Internet Explorer」の右の▼ボタンを押下し「使用ブラウザー」を選択します。



CTRLキーを押下しながら、複数ブラウザをクリック選択後、「ブラウザで表示」ボタンを押下します。
 

下記のように複数のブラウザが同時に起動されます。 


この状態で、cssやhtmlを変更し、下記の更新ボタン(丸い矢印)をクリックするとすべてのブラウザが同時に更新され結果が表示されます。
※このブラウザーリンクの機能は、web.configでdebug=trueの指定が必要になります。
 

③html編集機能(Web Essentials 2013)

htmlの編集画面でtable#list>tr.row*5>td.cell*4>aを入力しtabキーを押下すると
意味:
・tableタグの定義をid='list'で行う
・trタグにclass='row'をつけて5行分定義する
・tdタグにclass='cell'をつけて4列分定義する
・各セル内にaタグを定義する

 

そうすると、以下のようにhtml文を自動展開してくれます。