
すいません質問がございます。
onchangeイベントを使ってspanタグにある値が変わったらアラートを出したいです。
ものすごく単純なタグとして、下記の一行があります。
<span id="test">1</span>
そして下記のようなfunctionを作っておいて、もし、1が他の値になったらアラートを出す。といった仕組みを作りたいです。
var a = document.getElementById('test')
a.onchange = function(){
alert("abcde");
}
上記のfunctionは動きません。。。
html側は手を加えず、あくまでもjavascriptだけでアラートを出したいです。
これは可能でしょうか?
大変お手数ですがなにとぞよろしくお願いいたします。
No.6ベストアンサー
- 回答日時:
#4について
なにか大きな勘違いをされているようですが・・・
>その後サイトを訪問したユーザが2に変更したら、何も起きないですよね。
あとから来たひとが更新したら前のユーザーのHTMLにアラートをだすのでしょうか?
それは理論的にできません。
もしやるとしたらajaxで特定箇所だけ常に最新の状態にするような
プログラムを書くことですが、相当ハードルが高くなるので
おそらくいまの質問の内容から察するに質問者さんの経験と知識では
手がとどかないと思います
自己解決しました。
こんな感じのことがやりたかったです。
これで実現しました。
var txt1 = document.getElementById('test');
var txt2 = txt1.textContent;
setInterval(function(){
var txt3 = txt1.textContent;
if(txt2 != txt3 ){
console.log("test");
}
},1000);
No.5
- 回答日時:
もう一つ
#1で書いたソースがアラートを出すタイミングは。
ブラウザに表示されている「1」のところにマウスでカーソルをあわせ
なにかキーボードで入力をしたタイミングです
これもFEPが有効になっていると未確定な状態でalertがでてしまうので
spanからblurしたときとか何らかの条件をつけないといけないかもしれません
No.4
- 回答日時:
>document.getElementById('test').innerHTML = 2
>alert("change!");
そうですね
少し丁寧にやると
var val1=document.getElementById('test').innerHTML;
var val2=2;
document.getElementById('test').innerHTML=val2;
if(val1=val2){
alert("change");
}
のようにすれば元データから変更があった場合にアラートがでます
ありがとうございます。
これをページを監視しておいて、
変わったときにアラートが出るようにしたいです。
というのも、このJavaScriptをWebに実装したら、読み込むのは最初の一回だけじゃないですか。
でも、その後サイトを訪問したユーザが2に変更したら、何も起きないですよね。
それだと意味がないので、変わったときにアラートを出したいです。
setintervalがヒントになりますかね。。。
No.3
- 回答日時:
>document.getElementById('test').innerHTML = 2
それは考え方がおかしいです
プログラムで書き換えているのですから、その時点で
プログラムでアラートを出せば済む話です
ありがとうございます。
>>プログラムで書き換えているのですから、その時点でプログラムでアラートを出せば済む話です
つまり、
document.getElementById('test').innerHTML = 2
alert("change!");
とする。ということでしょうか?
また、本当にあほな質問ですいません。
それではアドバイスいただいたJavaScriptはどの時点でアラートが表示されますか?
document.addEventListener('input',function(e){
var t=e.target;
if(t.id=="test"){
console.log('change');
}
});
値が変わったときに変わったことをトリガーにアラートを出す。とやりたいです。。。質問が変だったらすいません。
No.2
- 回答日時:
一定間隔で監視するのが確実だと思います。
window.addEventListener('DOMContentLoaded', function(){
var p = document.getElementById('test');
var v = p.textContent;
var f = function(){ var a = p.textContent; if (v != a) { alert('change!'); v = a; } };
setInterval(f, 500);
}, false);
アドバイスありがとうございます。
ChromeのConsoleでこちらのスクリプトを叩いて、
その後に、document.getElementById('test').innerHTML = 2; で値を変えた後、change! のアラートは出てきませんでした・・・。
再度アドバイスいただけると幸いです。
No.1
- 回答日時:
spanの値はどうやってchangeさせるのでしょうか?contenteditable?
spanはchangeを受け付けるかどうかあやしいので
inputイベントで代替させたほうがよいかもしれません
(ただしinputは確定前でも反応するのでちゃんとやるなら調整が必要)
<script>
document.addEventListener('input',function(e){
var t=e.target;
if(t.id=="test"){
console.log('change');
}
});
</script>
<span id="test" contenteditable=true>1</span>
アドバイスありがとうございます。
ChromeのConsoleでこちらのスクリプトを叩いて、
その後に、document.getElementById('test').innerHTML = 2; で値を変えた後、console.logでchangeは出てきませんでした・・・。
再度アドバイスいただけると幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- JavaScript javascriptで入力フォームが空欄の時にアラートによるエラーを出すコードを書いています。 2 2023/06/13 17:58
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript Google reCAPTCHAについて 1 2023/02/22 14:37
- HTML・CSS 分数が正常に表示されない。 6 2022/05/09 18:53
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javascriptの質問です
-
クリックでURLに飛ばすときに、...
-
指定した数値同士を合計計算し...
-
別フレームのタグ属性を取得す...
-
お気に入り用のボタンを配置し...
-
div要素内の全input要素をdisable
-
[javascript]DOCTYPE宣言対応に...
-
Crossfader v1.3 を停止するには?
-
ホームページ内でのRSS表示の方法
-
フォーカスを合わせる
-
<a>タグのテキストを取得
-
JavaScriptのノードについて教...
-
javascript/他ページ内リンク...
-
DIV内のDIV要素を移動する。
-
メニュー3つとも個々にドロップ...
-
onclickの中のvar i
-
EventListener による関数呼び出し
-
船のゲームを作っているのです...
-
javascriptのレキシカルスコー...
-
delphi6を使っています。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<a>タグのテキストを取得
-
ActiveXobjectが作成できない
-
innerHTML実行後のイベント
-
onchangeイベントを使ってspan...
-
javascriptで編集可能不可能の...
-
javascript 特定のタグのidの存...
-
javascriptでスロットゲームを...
-
任意の座標をクリックさせるには
-
クリックを押した時にリンク先...
-
モーダルダイアログウィンドウ...
-
javascriptでCSVを呼出しvlookup
-
onclickを使わずにイベント処理...
-
【Tabキー】特定の範囲内だけで...
-
RadioButtonListの表示制御
-
オンマウスで音を鳴らせる為には?
-
Javascriptでページ内の任意ク...
-
オブジェクトがありません
-
javascriptであるボタンを押す...
-
オブジェクトがぶつかった時の処理
-
JavaScriptのID要素の中身をque...
おすすめ情報