[CakePHP]ダウンロード後にページをリロードしたい

データをダウンロード処理したときにフラグを立てるなど色々処理をしている。
ダウンロード後にリダイレクトかリロードをしたいと思った。

ダウンロードの処理でheaderを使っているのでリダイレクトのLocationが使えない。

そこでJSで別ウインドを開いて、そこにダウンロード処理を渡す。
その処理の後にページをリロードする処理をしてあげるとOK。

リダイレクトしたい場合はreloadのところをhrefにするとOK

郵便番号入力で住所を抽出してくれるJS

AjaxZip3の処理を変更した話
大変便利なライブラリ
https://github.com/ajaxzip3/ajaxzip3.github.io

下記のようにinputのonKeyUpを使った場合
意図しない動きをすることがあった。

郵便番号を前半、後半の二つに分けている。
前半3桁。後半4桁です。

前半3桁、後半4桁入力すると住所欄に住所が入力される。
というのは正常な動き。

これを下記の条件にすると動きが変わる

「全角入力モードにした状態で前半3桁に7桁の郵便番号を入力するとonkeyupが作動し住所が入力される。」

入力確定前にonkeyupが動作しています。
inputはmaxlengthで3にしているので3桁しか入力されない。

onKeyUpはやめてjQueryで制御することにする。

これで確定後の値で動作になるので意図した動きになりました。

JSのslideDownやslideToggleがうまく動かないとき

slideDownやslideToggleがうまく動かないとき

スライドするところがshow()を使ったときみたいにパッと表示される場合

表示する要素がblockでなければなりません。

inlineだとパッと表示されます。

これの解決に2時間ほどかかりました・・・

はぁ。

JavaScriptで日付の取得

JSでの日付の取得など備忘録

結果:Date 2018-07-14T08:00:35.771Z

このままだと使いづらいので下記のように個別で取得します。

ifなどで判定する場合はちょっと注意
数値型なので+すると足し算をしてしまうので、文字列に変換(toString())してから結合させる

[JQuery]data属性の取り扱い

HTML5からdataという独自属性が使えるようになりました。
data-* とdata-の後に好きな名前と値を設定が出来ます。

(例)

その独自属性をjqueryで取得する方法。

data()を使って内容を取得する。
取得したデータは連想配列として取得します。

結果

個別に指定でひとつだけ取得も可

結果

独自に値が設定できるので便利かも~

[JQuery]動的に生成したHTMLでclickなどを実行

動的に生成したHTMLに対してclickなどのイベントを実行させる。

JSなどで動的に生成したHTMLには下記のような書き方では実行できません。

$(“.btn”).on(“click”, function(){
  alert(“OK”);
});

上記JSがセットされたときに動的に生成したHTMLが見つからない場合
正常に動いてくれないのです。

そういう場合は下記のように記述します。

onの第2引数に追加します。

よく忘れるので備忘録的な…

非同期通信$.ajaxの今と昔

非同期通信で色々調べていたら出てきたやつ

上記これはjQueryのバージョンが1.5以前の古いタイプ

新しいタイプは下記

メモメモ