忍者ブログ

19Apr

[PR]

Posted by in

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

03Apr

preventDefaultを検証

Posted by No Name Ninja in メモ

preventDefaultで、ドラッグ&ドロップやsubmitを止めることができる。
もっと良い活用はないかと模索していたが、自分が考えてるように動作しなかった。
SAMPLE

・preventDefaultの説明
「イベントがキャンセル可能である場合、イベントのさらなる伝播 (propagation) を止めずに、そのイベントをキャンセルします。」
「イベントのプログラムは動くが、デフォルトのイベント動作はしませんよ。」と解釈しているのですが。。デフォルトを解除するには以下のようなソースとなります。

document.forms['testForm'].elements['testCheckbox'].onclick =  function(evt){
  evt = evt || window.event;
  evt.preventDefault();

}


●各種INPUTの動作の結果

・formのsubmitを解除
以下で動作が止まりました。もう1行追加が必要です。

evt = evt || window.event;
evt.preventDefault();
 evt.returnValue = false;



・ラジオボタン、チェックボタン
狙い通り、選択の変更ができなくなります。
ただし、画面遷移時、パラメータは渡ります。

・テキスト
keydownのイベント登録で変更不能になりますが、入力補完機能で入力値の変更が可能。
onclickを登録してもダメでした。

・セレクトボックス
全く機能しなかった。optionにまでイベント登録を試してみたけど無駄でした。

●まとめ
inputによる振る舞いがかなり違ってくるので、有効活用するのは難しいかも。
以下の使用に限定するのが良いかもしれない。
・submitキャンセル
・HTML5のドラッグ&ドロップの明示的なキャンセル指定


※参考文献
Mozilla Developer Networkevent.preventDefault - MDN
PR

Comment


Vodafone絵文字 i-mode絵文字 Ezweb絵文字