2012年12月26日水曜日

html5の数値入力欄

inputタグのtype属性をnumberにすると数値入力欄になります。

<input type="number" name="number" id="number">

ブラウザで確認すると以下の様な入力フォームが出力されます。





数値入力欄の値をJavaScriptでNumberとして取得することもできます。Numberとして取得したい場合は、valueAsNumberプロパティを通して値を取得します。

  (function() {
    var number = document.getElementById('number'),
        value;
    value = number.valueAsNumber;
    console.log(typeof value);
  })();

2012年12月21日金曜日

html5のrequired属性の背景色を変更

html5のクライアントバリデーションの必須属性(required属性)の背景色をjqueryを使用して変更する方法。

  (function ($) {
    $('input:required').each(function() {
      var $this = $(this);
      // 初期表示時の色設定
      changeColor($this);

      // チェンジイベントをトリガーとする色設定
      $this.change(function() {
        changeColor($this);
      });

      function changeColor(element) {
        var backgroundColor;
        if (element.val()) {
          // 値がある場合は背景色を白に
          backgroundColor = 'white';
        } else {
          // 値がない場合は背景色をピンクに
          backgroundColor = 'pink';
        }
        element.css({backgroundColor: backgroundColor});
      }
    });
  })(jQuery);

2012年12月11日火曜日

ORA-01704に、悩まされた時の対処方法

NCLOBへのインサート時に「ORA-01704: 文字列リテラルが長すぎます」が出た場合の対処方法。

下のコードのように、PL/SQLにして文字リテラルをCLOB型の変数に直接突っ込んであげるとエラーが回避できるみたい。
declare
  data nclob;
begin
  data := '長い文字列';
  insert into test values (data);
end;
/