HTMLのテキストボックスに文字列(テキスト)をドラッグ&ドロップしたときに、イベントを発生させたいのですが分かりません。
<INPUT TYPE="text" NAME="test" VALUE="" ondragdrop="alert('test!')">
というのを作ってみましたが、ondragdropはファイルにしか対応していないみたいなので無理でした。
ondragoverは反応しましたが、マウスを離す前にイベントが発生するため、こちらの意図する動作にはなりません。
やはりそういうイベントハンドラは用意されていないのでしょうか?
No.1
- 回答日時:
こんなのはどうでしょう?
<input type="text" id="test" value=""/>
window.onload = function(){
var input = document.getElementById('test');
input.onmouseover = function(){
this.setAttribute('set','');
}
input.onmouseout = function() {
this.removeAttribute('set');
}
input.onmousedown = function() {
this.removeAttribute('set');
}
input.onmouseup = function() {
if (this.hasAttribute('set')) {
alert('dropped');
}
}
}
ご回答ありがとうございます。
試してみましたが、うまくいきませんでした。
alertをはさんだりして調べてみたところ、テキストをドラッグしている状態だとonmouseupのイベントが発生しないようです。
普通に、何もドラッグせずにマウスのクリックを外しただけなら、イベントが発生しました。
ボクの環境や記述がおかしいのでしょうか?
kaorineさんのところではうまく動きますか?
自分はIE7を使ってるんですが(質問時に書くべきでしたねm(__)m)、ブラウザで違うんですかね?
ただ考え方自体はすごいなぁと感心しました。
setAttributeを使うなんて思いつかなかったです^^
ありがとうございました。
No.2ベストアンサー
- 回答日時:
テキストをドラッグするテストをしていませんでした。
すみません。確かに動きませんね。
これでどうでしょう?
---
var t = {
text: '',
mousedown: 0
}
window.onload = function(){
var input = document.getElementById('test');
t.text = input.value;
input.onmouseover = function(){
if (t.mousedown && t.text != this.value) {
t.text = this.value;
alert('dropped');
}
}
input.onchange = function(){
text = this.value;
}
document.onmousedown = function(){
t.mousedown = 1;
}
document.onmouseup = function(){
t.mousedown = 0;
}
}
---
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP $_SESSIONについて教えて下さい。 2 2023/03/02 09:18
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- Visual Basic(VBA) Selenium Basicの件 5 2023/04/10 20:55
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
追加ボタンを押した際に ok ボ...
-
Firefoxでwindow.openerが動作...
-
onclickが動作しない
-
リンクの追加
-
JSのボタンを複数う使うには
-
開いた子ウィンドウにあるボタ...
-
onchangeイベントを強制的に発...
-
ボタンをクリックするとテキス...
-
オークションサイト一括検索サ...
-
オンクリックで現在時刻の取得→...
-
VB.NETで<Input>タグ、<text...
-
onClickがinput type="image"だ...
-
formのfileの値をhiddenでも持...
-
return trueとreturn falseの用...
-
チェックボックスのON/OFFでVal...
-
<form action="#">の意味とは?
-
jQuery セレクトボックスで選択...
-
フォームが空欄の時にフォーム...
-
【jQuery】input nameの文字列...
-
新しくフォルダを作成したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onchangeイベントを強制的に発...
-
iOSのみダブルタップが必要
-
onclickが動作しない
-
追加ボタンを押した際に ok ボ...
-
ボタンかリンクをクリックする...
-
innerHTML内では改行は禁止?
-
クリックさせたいが、click()が...
-
javaScriptの変数をJavaの変数...
-
formのfileの値をhiddenでも持...
-
JavascriptでDOM-based XSSの発...
-
クリックでテーブル内の背景色...
-
VB.NETで<Input>タグ、<text...
-
開いた子ウィンドウにあるボタ...
-
jQueryで設定したイベントハン...
-
javascriptで作成されたテーブ...
-
HTMLのテキストボックスへのド...
-
テキストフィールド未入力の場...
-
JavaScriptのfileオブジェクト...
-
JSのボタンを複数う使うには
-
オンクリックで現在時刻の取得→...
おすすめ情報