JQueryのchangeイベント実行
未読分:4件
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
Message#4 2018年11月8日(木)23時33分 From: ジャッカル | 返事 削除 変更 |
それなら 直で addFilter($(this).val(), '', []); を実行したらいいってことだね。 > 見ていただき、ありがとうございます。 > > JQueryはほとんど理解できていないので間違っているかもしれませんが、 > この部分がイベントで実行されると思います。 > > $('#add_filter_select').change(function() { > > addFilter($(this).val(), '', []); > > 実際の動作は、「フィルタ追加」のセレクトボックスで選択したものに > 応じて、新たにセレクトボックスが表示されるというものです。 > '#add_filter_select'に値を入れることはできたのですが、表示される > はずのセレクトボックスが表示されなかったので、changeイベントが > 実行されていないためと思いました。 > > > > > ジャッカルのメッセージ(#2)への返事 > > > どれがJQueryのイベントコード? > > > > > > > Redmineというプロジェクト管理ツールから、登録されているチケットをVBAで取得しようとしています。取得処理の中で、セレクトボックスを選択した後でJQueryのchangeイベントが発生する箇所があるのですが、イベントの起動ができません。本掲示板の過去スレッドに出ていた方法も試したのですが、うまくいきませんでした。 > > > みなさんの知恵をお借りしたいです。よろしくお願いします。 > > > > > > <対象ページの構造> > > > 1)HTMLの内容 > > > ★で要素を選択すると、要素に応じたセレクトボックスが表示されます。 > > > td class="add-filter" > > > label for="add_filter_select"?フィルタ追加 /label > > > select id="add_filter_select".../select★ > > > /td > > > > > > 2)イベントの確認 > > > ブラウザでselect id="add_filter_select"でEvent Listeners を > > > 確認すると、以下の通りでした。 > > > ▼change > > > ▼select#add_filter_select > > > application.js?1396112202:78 > > > useCapture: true > > > passive: false > > > once: false > > > ▼handler: f() > > > ?[[scopes]]: Scopes[1] > > > [[FunctionLocation]]: <unknown> > > > ?__proto__: f() > > > ?prototype: {constructor: f} > > > name: "" > > > length: 0 > > > caller: null > > > arguments: null > > > guid: 24 > > > > > > handler の後のf() にマウスを乗せると、 > > > function() { addfilter($this).val(), '',[]; } > > > と表示されました。 > > > > > > 3)ソースの確認 > > > handlerのf()で"Show Function Definition"を実行すると > > > 以下のソールが表示・選択されました。 > > > function initFilters() { > > > $('#add_filter_select').change(function() { > > > addFilter($(this).val(), '', []); > > > }); > > > > > > <試したこと> > > > 1)以下の方法では、値がセレクトボックスに表示されましたがイベント > > > は発生しませんでした。 > > > Dim evt As Object > > > Set evt = objIE.document.createEvent("HTMLEvents") > > > evt.initEvent "change", True, False > > > > > > objIE.document.getElementById("add_filter_select").Value = "tracker_id" > > > objIE.document.getElementById("add_filter_select").dispatchEvent evt > > > > > > 2)以下の方法も、値がセレクトボックスに表示されただけでイベント発生せず。 > > > Dim evt As Object > > > Set evt = objIE.document.createEvent("HTMLEvents") > > > evt.initEvent "change", True, False > > > > > > With objIE.document.getElementById("add_filter_select") > > > .Value = "tracker_id" > > > .dispatchEvent evt > > > End With > > > > > > 3)JQueryを直接起動する(つもり。JavaScriptやJQueryは良く分から > > > ないので、Webに出ていたものを例にやってみました) > > > これも、値は表示されましたがイベントは起きませんでした。 > > > > > > Dim evt As Object > > > Set evt = objIE.document.createEvent("HTMLEvents") > > > evt.initEvent "change", True, False > > > > > > objIE.document.getElementById("add_filter_select").Value = "tracker_id" > > > objIE.navigate "JavaScript:addfilter('add_filter_select')" > > > > > > 以上です。 |
Message#3 2018年10月29日(月)16時19分 From: 斎藤 | 返事 削除 変更 |
見ていただき、ありがとうございます。 JQueryはほとんど理解できていないので間違っているかもしれませんが、 この部分がイベントで実行されると思います。 > $('#add_filter_select').change(function() { > addFilter($(this).val(), '', []); 実際の動作は、「フィルタ追加」のセレクトボックスで選択したものに 応じて、新たにセレクトボックスが表示されるというものです。 '#add_filter_select'に値を入れることはできたのですが、表示される はずのセレクトボックスが表示されなかったので、changeイベントが 実行されていないためと思いました。 ジャッカルのメッセージ(#2)への返事 > どれがJQueryのイベントコード? > > > > Redmineというプロジェクト管理ツールから、登録されているチケットをVBAで取得しようとしています。取得処理の中で、セレクトボックスを選択した後でJQueryのchangeイベントが発生する箇所があるのですが、イベントの起動ができません。本掲示板の過去スレッドに出ていた方法も試したのですが、うまくいきませんでした。 > > みなさんの知恵をお借りしたいです。よろしくお願いします。 > > > > <対象ページの構造> > > 1)HTMLの内容 > > ★で要素を選択すると、要素に応じたセレクトボックスが表示されます。 > > td class="add-filter" > > label for="add_filter_select"?フィルタ追加 /label > > select id="add_filter_select".../select★ > > /td > > > > 2)イベントの確認 > > ブラウザでselect id="add_filter_select"でEvent Listeners を > > 確認すると、以下の通りでした。 > > ▼change > > ▼select#add_filter_select > > application.js?1396112202:78 > > useCapture: true > > passive: false > > once: false > > ▼handler: f() > > ?[[scopes]]: Scopes[1] > > [[FunctionLocation]]: <unknown> > > ?__proto__: f() > > ?prototype: {constructor: f} > > name: "" > > length: 0 > > caller: null > > arguments: null > > guid: 24 > > > > handler の後のf() にマウスを乗せると、 > > function() { addfilter($this).val(), '',[]; } > > と表示されました。 > > > > 3)ソースの確認 > > handlerのf()で"Show Function Definition"を実行すると > > 以下のソールが表示・選択されました。 > > function initFilters() { > > $('#add_filter_select').change(function() { > > addFilter($(this).val(), '', []); > > }); > > > > <試したこと> > > 1)以下の方法では、値がセレクトボックスに表示されましたがイベント > > は発生しませんでした。 > > Dim evt As Object > > Set evt = objIE.document.createEvent("HTMLEvents") > > evt.initEvent "change", True, False > > > > objIE.document.getElementById("add_filter_select").Value = "tracker_id" > > objIE.document.getElementById("add_filter_select").dispatchEvent evt > > > > 2)以下の方法も、値がセレクトボックスに表示されただけでイベント発生せず。 > > Dim evt As Object > > Set evt = objIE.document.createEvent("HTMLEvents") > > evt.initEvent "change", True, False > > > > With objIE.document.getElementById("add_filter_select") > > .Value = "tracker_id" > > .dispatchEvent evt > > End With > > > > 3)JQueryを直接起動する(つもり。JavaScriptやJQueryは良く分から > > ないので、Webに出ていたものを例にやってみました) > > これも、値は表示されましたがイベントは起きませんでした。 > > > > Dim evt As Object > > Set evt = objIE.document.createEvent("HTMLEvents") > > evt.initEvent "change", True, False > > > > objIE.document.getElementById("add_filter_select").Value = "tracker_id" > > objIE.navigate "JavaScript:addfilter('add_filter_select')" > > > > 以上です。 |
Message#2 2018年10月26日(金)11時06分 From: ジャッカル | 返事 削除 変更 |
どれがJQueryのイベントコード? > Redmineというプロジェクト管理ツールから、登録されているチケットをVBAで取得しようとしています。取得処理の中で、セレクトボックスを選択した後でJQueryのchangeイベントが発生する箇所があるのですが、イベントの起動ができません。本掲示板の過去スレッドに出ていた方法も試したのですが、うまくいきませんでした。 > みなさんの知恵をお借りしたいです。よろしくお願いします。 > > <対象ページの構造> > 1)HTMLの内容 > ★で要素を選択すると、要素に応じたセレクトボックスが表示されます。 > td class="add-filter" > label for="add_filter_select"?フィルタ追加 /label > select id="add_filter_select".../select★ > /td > > 2)イベントの確認 > ブラウザでselect id="add_filter_select"でEvent Listeners を > 確認すると、以下の通りでした。 > ▼change > ▼select#add_filter_select > application.js?1396112202:78 > useCapture: true > passive: false > once: false > ▼handler: f() > ?[[scopes]]: Scopes[1] > [[FunctionLocation]]: <unknown> > ?__proto__: f() > ?prototype: {constructor: f} > name: "" > length: 0 > caller: null > arguments: null > guid: 24 > > handler の後のf() にマウスを乗せると、 > function() { addfilter($this).val(), '',[]; } > と表示されました。 > > 3)ソースの確認 > handlerのf()で"Show Function Definition"を実行すると > 以下のソールが表示・選択されました。 > function initFilters() { > $('#add_filter_select').change(function() { > addFilter($(this).val(), '', []); > }); > > <試したこと> > 1)以下の方法では、値がセレクトボックスに表示されましたがイベント > は発生しませんでした。 > Dim evt As Object > Set evt = objIE.document.createEvent("HTMLEvents") > evt.initEvent "change", True, False > > objIE.document.getElementById("add_filter_select").Value = "tracker_id" > objIE.document.getElementById("add_filter_select").dispatchEvent evt > > 2)以下の方法も、値がセレクトボックスに表示されただけでイベント発生せず。 > Dim evt As Object > Set evt = objIE.document.createEvent("HTMLEvents") > evt.initEvent "change", True, False > > With objIE.document.getElementById("add_filter_select") > .Value = "tracker_id" > .dispatchEvent evt > End With > > 3)JQueryを直接起動する(つもり。JavaScriptやJQueryは良く分から > ないので、Webに出ていたものを例にやってみました) > これも、値は表示されましたがイベントは起きませんでした。 > > Dim evt As Object > Set evt = objIE.document.createEvent("HTMLEvents") > evt.initEvent "change", True, False > > objIE.document.getElementById("add_filter_select").Value = "tracker_id" > objIE.navigate "JavaScript:addfilter('add_filter_select')" > > 以上です。 |
Message#1 2018年10月22日(月)10時55分 From: 斎藤 | 返事 削除 変更 |
Redmineというプロジェクト管理ツールから、登録されているチケットをVBAで取得しようとしています。取得処理の中で、セレクトボックスを選択した後でJQueryのchangeイベントが発生する箇所があるのですが、イベントの起動ができません。本掲示板の過去スレッドに出ていた方法も試したのですが、うまくいきませんでした。 みなさんの知恵をお借りしたいです。よろしくお願いします。 <対象ページの構造> 1)HTMLの内容 ★で要素を選択すると、要素に応じたセレクトボックスが表示されます。 td class="add-filter" label for="add_filter_select"?フィルタ追加 /label select id="add_filter_select".../select★ /td 2)イベントの確認 ブラウザでselect id="add_filter_select"でEvent Listeners を 確認すると、以下の通りでした。 ▼change ▼select#add_filter_select application.js?1396112202:78 useCapture: true passive: false once: false ▼handler: f() ?[[scopes]]: Scopes[1] [[FunctionLocation]]: <unknown> ?__proto__: f() ?prototype: {constructor: f} name: "" length: 0 caller: null arguments: null guid: 24 handler の後のf() にマウスを乗せると、 function() { addfilter($this).val(), '',[]; } と表示されました。 3)ソースの確認 handlerのf()で"Show Function Definition"を実行すると 以下のソールが表示・選択されました。 function initFilters() { $('#add_filter_select').change(function() { addFilter($(this).val(), '', []); }); <試したこと> 1)以下の方法では、値がセレクトボックスに表示されましたがイベント は発生しませんでした。 Dim evt As Object Set evt = objIE.document.createEvent("HTMLEvents") evt.initEvent "change", True, False objIE.document.getElementById("add_filter_select").Value = "tracker_id" objIE.document.getElementById("add_filter_select").dispatchEvent evt 2)以下の方法も、値がセレクトボックスに表示されただけでイベント発生せず。 Dim evt As Object Set evt = objIE.document.createEvent("HTMLEvents") evt.initEvent "change", True, False With objIE.document.getElementById("add_filter_select") .Value = "tracker_id" .dispatchEvent evt End With 3)JQueryを直接起動する(つもり。JavaScriptやJQueryは良く分から ないので、Webに出ていたものを例にやってみました) これも、値は表示されましたがイベントは起きませんでした。 Dim evt As Object Set evt = objIE.document.createEvent("HTMLEvents") evt.initEvent "change", True, False objIE.document.getElementById("add_filter_select").Value = "tracker_id" objIE.navigate "JavaScript:addfilter('add_filter_select')" 以上です。 |
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降