【jQuery】フォーム全体の変更を監視


フォームの入力値変更を感知したい場合

$('input').change(function() {
});

$('select').change(function() {
});

などと、一つ一つ書くのが面倒なときがあります。
そういうときは、以下のようにするとフォーム全体の変更を感知できるようになります。

<form action="" name="testForm" method="post">
...略...
</form>

<script>
$('form[name=testForm]').change(function(e) {
    var target = $(e.target);
    var type = target.attr('type');
    var name = target.attr('name');
    var val = target.val();
    console.log(type, ':', name, ':', val);
});
</script>

これで「testForm」という名前のフォーム全体に対して、要素の変更を感知できるようになります。
「input type」やセレクトボックス、チェックボックス、ラジオボタンなどによって処理を変えたい場合は、「type」を見て「switch case」などで処理を分岐させると良いでしょう。


【jQuery】連想配列のマージ


複数の連想配列を、上書きでマージしたい場合のやり方について。

$.extend(target, obj1[, obj2, ...]);

target:マージ対象の連想配列
objXX:マージする連想配列
※マージする連想配列は複数指定可能

例)

var test1 = {a:'A', b:'B', c:'C', d:'D'};
var test2 = {b:'99', e:'1'};

$.extend(test1,test2);
console.log(test1);

出力結果
{a: “A”, b: “99”, c: “C”, d: “D”, e: “1”}

参考サイト:ko-atrandom
連想配列の中に、さらに連想配列を含む場合などの使い方も載っている。


【Tera Term】「エージェント転送する&Pageantを使う」によるSSH自動ログインマクロ


公開鍵と秘密鍵を用いた鍵認証方式のログインを、「エージェント転送」と「Pageant」で行いたい場合の、マクロ作成方法です。

下記の内容を「ホスト名.ttl」などとして保存します。
「ttl」ファイルが、Tera Term に関連付けされていればダブルクリックするだけで自動ログインできるようになります。

username = 'アカウント名'
hostname = 'IPアドレス'
portnum = 'ポート番号'

msg = hostname
strconcat msg ':'
strconcat msg portnum
strconcat msg ' /ssh /2 /auth=publickey /user='
strconcat msg username
strconcat msg ' /auth=pageant'
strconcat msg ' /ssh-A'
strconcat msg ' /ssh-agentconfirm=off'

connect msg

settitle 'タイトル(ホスト名など)'

マクロ実行前に、あらかじめ pageant で秘密鍵を読み込んでおく必要があります。

コマンドの簡易説明
/auth=pageant Pageantを使用する
/ssh-A エージェント転送を有効にする
/ssh-agentconfirm=off エージェント転送要求を受け入れるか確認しない

その他のログインマクロについては以下より。
鍵認証方式でのSSH自動ログインマクロ
SSH自動ログインマクロ