LotusNotesな日々IBM社のLotusNotesに関係する何かを日々語ってるようなきがしないでもないブログです。 

スポンサーサイト

   ↑  --/--/-- (--)  カテゴリー: スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

(記事編集) http://mesosune.blog123.fc2.com/?overture" target="_new

--/--/-- | Comment (-) | HOME | ↑ ページ先頭へ |

【JavaScript】エンターサブミットを禁止する-3

   ↑  2013/06/09 (日)  カテゴリー: JavaScript/CSS
前回 のがちょっと使いにくかったので、
回避をJavaScriptで行ってみたいと思います。

この方法だとHTMLコードを汚すことはありませんので便利です。
submitボタンとtextareaのみEnterキーが有効にしています。
お好みでbuttonでもEnterキーを有効にしてもよいかもしれません。

// イベントを追加する
function addEvent(evt, func, cap) {
if (this.addEventListener){
this.addEventListener(evt, func, cap);
} else if (this.attachEvent){
this.attachEvent('on' + evt, func);
} else {
alert('ご使用の環境では、このスクリプトはご使用できないです');
}
}
Object.prototype.addEvent = addEvent;
HTMLDocument.prototype.addEvent = addEvent;
Element.prototype.addEvent = addEvent;

// イベント発生元の要素を取得する
function getTarget() { return this.srcElement || this.target; }
Event.prototype.getTarget = getTarget;

// イベント発生時のキーコードを取得する
function getKeyCode() { return ( this.charCode ) ? this.charCode : (( this.which ) ? this.which : this.keyCode ) ; }
Event.prototype.getKeyCode = getKeyCode;

// エンター無効
function onEnter(evt){
var keycode = evt.getKeyCode();
var elem = evt.getTarget;
if ( Number(keycode) == 13 ){
//submitとtextarea以外はエンター無効
if( elem.type !="submit" || elem.type !="textarea" ){ return false ; };
}
}

// ウィンドウ ロードでイベントを登録します
addEvent('load',
function (evt) {
//すべてのタグを取得します
var tags = document.getElementsByTagName("*");
for( var cnt = 0 ; cnt <= tags.length ; cnt++ ){
var elm = tags.item(cnt);
var elmname = elm.tagName;
//form タグのみとします(最初のgetElementsByTagNameで"form"としても同じです)
if( elmname.toLowerCase() == "form" ){
elm.addEvent('submit', onEnter, false);
}
}
},
true
);
スポンサーサイト

(記事編集) http://mesosune.blog123.fc2.com/blog-entry-397.html

2013/06/09 | Comment (0) | Trackback (0) | HOME | ↑ ページ先頭へ |
この次の記事 : 【VBA】ByValとByRef
この前の記事 : 【HTML+JavaScript】HTML5でグラフを描こう

Comment

コメントを投稿する 記事: 【JavaScript】エンターサブミットを禁止する-3

お気軽にコメントをぞうぞ。
非公開 (管理人のみ閲覧可能なコメント) にしたい場合には、ロック にチェックを入れてください。

  任意 : 後から修正や削除ができます。
  非公開コメントとして投稿する。(管理人にのみ公開)
 

Trackback

この次の記事 : 【VBA】ByValとByRef
この前の記事 : 【HTML+JavaScript】HTML5でグラフを描こう
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。