
こんにちは。
「Autotab: jQuery auto-tabbing and filter plugin」
http://www.lousyllama.com/sandbox/jquery-autotab
これを、prototype.jsで実現したいです。
でも全くわかりません。どうか教えてください。
よろしくおねがいします。
No.2ベストアンサー
- 回答日時:
> こんなのを紹介してるサイトがありましたが、
> prototype.jsを併用すると動作しません。
waterclockさんが補足で貼られたJavaScriptのソースコードを元にprototype.jsで動作するものを作成してみました。
prototype.jsと併用するとタグ内に記述した onkeyup='...' が解釈されなくなるようですね。理由は分かりませんが…。
下記に作成したものを載せておきますが、Linux版のFirefox上でしか動作確認していません。
他のブラウザで動作するか分かりませんが、参考にして下さい。
[JavaScript]
<script type="text/javascript">
<!--
var targets; // input要素を保持しておく
/*----- Windowロード時の処理 -----*/
window.onload = function() {
targets = $$("input");
targets.each(function(target) {
target.observe("keyup", next); // 各input要素に対してkeyupイベントハンドラを設定
});
};
/*----- keyupイベントハンドラ -----*/
function next(event) {
var element = event.element(); // イベントが発生した要素
// maxlength属性値の取得
var maxlength;
if (element.readAttribute("maxlength") != null) {
maxlength = element.readAttribute("maxlength");
} else {
maxlength = 2147483647; // maxlength属性値がない場合は最大値に設定
}
// 入力文字列の取得
var value = element.value;
// 入力文字列の長さ < maxlengthの時は何もしない
if (value.length < maxlength) {
return true;
}
element.blur(); // フォーカス解除
// 次の要素にフォーカスを当てる
var n = targets.indexOf(element);
if (n != -1 && n < targets.size() - 1) {
(targets[n + 1]).focus();
}
}
//-->
</script>
[HTML]
<form>
Zip-code:<input type='text' size='3' id='former' onkeyup='next(0);' maxlength='3' /> -
<input type='text' size='4' id='latter' onkeyup='next(1);' maxlength='4' /><br />
Address:<input type='text' id='address' size='20' />
</form>
これ良いですね。inputタグにonkeyupってかかなくてもOKです。
AjaxZip2を使ってますが、問題なく動作しました。
郵便番号のところがスパ、スパっと進むだけで、なんか嬉しいですね。
電話番号は、色々あるから無理かな。
どうもありがとうございました。

No.1
- 回答日時:
そんなに難しくないスクリプトだと思いますけど?
prototype.js使わなくてもできそうな気がします。
(もっとも、prototype.jsを使えばスクリプトが短くなるとは思いますが)
onkeyupで関数を呼び出して、指定文字数入力されていたら次のフォームを.focus()する。
数字しか入力できないフォームは正規表現とかでチェックする。
…という感じでしょうか。
この回答への補足
<script type='text/javascript'>
var target = new Array('former','latter','address');
var focus = new Array(3,4);
function next(n){
if(document.getElementById){
var f = document.getElementById(target[n]).value;
if(f.length < focus[n]){ return true; }
document.getElementById(target[n]).blur();
document.getElementById(target[n+1]).focus();
}
}
</script>
///------------------//////
<form>
Zip-code:<input type='text' size='3' id='former' onkeyup='next(0);' maxlength='3' /> -
<input type='text' size='4' id='latter' onkeyup='next(1);' maxlength='4' /><br />
Address:<input type='text' id='address' size='20' />
</form>
こんなのを紹介してるサイトがありましたが、
prototype.jsを併用すると動作しません。
prototype.jsは、違う目的で必須ですので、外せないのです。
この郵便番号部分だけ、自動移動のタブにしたいのです。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- JavaScript 助けてください!スパムメールがとんでもなく大量に届きます。 3 2023/08/10 16:32
- JavaScript プラグイン無しでContactform7にdatepickerを実装 3 2022/10/25 02:18
- JavaScript スマホ上で、左右スワイプで次のページに移動させたいです 2 2022/11/11 17:04
- JavaScript jQueryでのレスポンシブが綺麗に動かない 3 2022/06/21 11:08
- JavaScript jquery 診断コンテンツにチェックボックスを付けたいです 3 2023/01/19 18:31
- JavaScript 階層別の組織図の自動作成について 1 2022/10/26 13:42
- その他(プログラミング・Web制作) 入力フォームへ、データを自動的に入力するプログラム。どうやって作る? 4 2023/01/16 10:24
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
[C++] vector<string> の各要素...
-
スプレッドシートのチェックボ...
-
VBAでセル参照して要素の順番を...
-
WebサイトのHTMLオブジェクトの...
-
マウスの入って来た方向を検出...
-
デジタル時計の時刻合わせの方...
-
エクセルのシート上に別のシー...
-
マイページはどこを開くの
-
エクセルVBAでフォームのListbo...
-
Javascript_submit()完了後に処...
-
Outlookでこのような表示がされ...
-
VBの画面で、全ウィンドウを一...
-
Excel操作 ウィンドウで出した...
-
ウィンドウのつかみ方がよく分...
-
小さな表示窓の呼び方は
-
javascriptで開いたウィンドウ...
-
VBScriptでリンクをクリックし...
-
PDFを(htmlのように)無限に縦...
-
IEのウインドウ、複数開いたと...
-
Excelでワードアートや図を常に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VC++のデバッガでvectorの要素...
-
(VBS) テキストファイル読込で...
-
[C++] vector<string> の各要素...
-
【VBA/HTML】特定のタグ要素に...
-
ajaxで追加したdom要素にscript...
-
bxSliderで動画をスライドごと...
-
ロールオーバーで大きくバナー...
-
VBA スクレイピング
-
WebサイトのHTMLオブジェクトの...
-
jqueryでtable内容の置き換え
-
ModeSwitchの状態の取得方法
-
JavaScriptでクリップボードの...
-
PL/Iについて、教えてください。
-
JQuery、セレクトボックスをル...
-
フォームで入力時自動で次の項...
-
ajax
-
スプレッドシートのチェックボ...
-
ページ全体をスクロールするAja...
-
ハンバーガーメニューが閉じない
-
Ajax.Updaterで読み込んだ先の...
おすすめ情報