よくあるsubmitフォームの場合、
エンターキーを押すと自動的にsubmitされるようになっています。
これをformタグがないただの入力フォーム上で、
エンターキーが押されたら処理を行うようにします。
1 2 3 4 5 |
$(入力フォーム).keypress(function(e) { if(e.which == 13) { /* 処理内容 */ } }); |
在宅プログラマーの備忘録として2005年に始めたブログです。
よくあるsubmitフォームの場合、
エンターキーを押すと自動的にsubmitされるようになっています。
これをformタグがないただの入力フォーム上で、
エンターキーが押されたら処理を行うようにします。
1 2 3 4 5 |
$(入力フォーム).keypress(function(e) { if(e.which == 13) { /* 処理内容 */ } }); |
1 |
var array2 = array1; |
のように配列や連想配列をそのまま代入すると「参照渡し」という形になり、
コピー先だけ変更したつもりがコピー元も一緒に変更されてしまいます。
コピーするには配列の中身を代入していく必要があるのですが、
jQueryの場合はextend関数で簡単にコピーできます。
配列:
1 |
var array2 = $.extend(true, [], array1); |
連想配列:
1 |
var array2 = $.extend(true, {}, array1); |
jQueryでフォームの値を変更した際に、単に
1 2 |
$(フォーム).val(値); $(フォーム).prop('checked', true); |
としただけでは、onchangeイベントは実行されませんが、
1 2 |
$(フォーム).val(値).change(); $(フォーム).prop('checked', true).change(); |
のようにchange()を呼ぶことでonchangeイベントを発火させることができます。
jQueryの$.ajax関数で
1 |
async: true |
にして非同期通信を行うときに、通信を中断することができます。
やりかたは、$.ajax関数の戻り値を変数に格納し、
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
var ajax_obj = $.ajax({ url: '(URL)' ,type: 'POST' ,data: '(データ)' ,async: true ,success: function(result) { // 成功時の処理 } ,error: function(xml, error, thrown) { if(thrown == 'abort') { alert('処理を中断しました'); } } }); |
中断したい場合はその変数のabortメソッドを呼びます。
1 |
ajax_obj.abort(); |
abortメソッドを呼ぶと、上記の例のように
thrownに「abort」が返されますので
エラーなのか中断なのかの切り分けが可能です。
通信中にモーダルでローディング表示を行っている場合などに
ローディングダイアログに「中断」リンクをつけてあげると親切ですよね。
最近多用している、ページトップへのアニメーションスクロール、
jQueryなら簡単に実装できます。
1 2 3 4 5 |
var pagetop_scroll = function() { var speed = 500; /* ミリ秒 */ var position = $('html').offset().top; $('body,html').animate({scrollTop:position}, speed, 'swing'); }; |