2009-06-28 9 views
0

私はHTML DOMと対話するVBアプリケーションを作成しています。HTML DOM:SELECTボックスの更新メソッドを呼び出す方法

私は、このページに行けば:

https://edit.yahoo.com/registration

し、選択したデフォルトのオプションから右上に「ヤフー!アジア」でSELECTボックス「から私が好むコンテンツ」を変更しようと、私は、このコマンドを使用して行うことができます。

Document.Forms.regFormBody.preferredcontent.selectedIndex =

10それは正常に変更されます。しかし、問題は、あなたが手動でそのオプションをYahoo!に変更したのと同じ動作ではないということですあなたのマウスを使ってアジア。

DOMを使用せずに手動で変更しようとすると、変更後にページが更新されます。

私はそれがjavascriptコールか何かオプションが選択されているページをリフレッシュするものと仮定していますが、DOMを使用してその動作を複製しようとしましたが、

誰かが助けることができますか?前もって感謝します。

答えて

0

onChangeイベントをお探しの場合もちろん、他のイベント、おそらくonBlurによってフォームが提出される可能性があります。

どうやら次の行に縛らコメント

から追加の質問次の更新:

YAHOO.util.Event.on("preferredcontent", "change", ymem_reg.switchPrefContent); 

次を呼び出します:

ymem_reg.switchPrefContent = function(e) { 
    var Dom = YAHOO.util.Dom || false; 
    if (Dom) { 
     var oForm = Dom.get("regFormBody"); 
     var sToIntl = this.options[this.selectedIndex].value; 
     var yregFormValidator = (typeof yregFormValidator !== "undefined") ? yregFormValidator: false; 
     var fieldsWithDefaults = Dom.get(["firstname", "secondname", "dd", "yyyy"]); 
     var clearVal = function(el) { 
      if (el !== null && ymem_reg.fieldHasDefaultVal(el)) { 
       el.value = ""; 
      } 
     } 
     if (oForm !== null && sToIntl !== "") { 
      if (yregFormValidator) { 
       yregFormValidator.disable(); 
      } 
      var oInput = document.createElement("input"); 
      oInput.setAttribute("type", "hidden"); 
      oInput.setAttribute("name", "IntlSwapBtn"); 
      oInput.setAttribute("id", "IntlSwapBtn"); 
      oForm.appendChild(oInput); 
      Dom.batch(fieldsWithDefaults, clearVal); 
      oForm.submit(); 
     } 
    } 
} 
+0

しかし、あなたが問題になっているSELECTボックスを調べる場合明らかにonChangeの動作がバインドされていないことがわかります。それが変更されたときに行うjavascript呼び出しを見つけることができますか? –

+0

回答が更新されました。 – Sampson

+0

それは素晴らしいです。どのようにそれを解剖することができたか分かりませんが、私はそれを取るでしょう。しかし、私はまだその動作を複製するためにDOMを使用する方法を理解することはできません。私はVBでこれをやろう: 'Document.Forms.regFormBody.preferredcontent.selectedIndex = 10 ' SET newElem = IE.Document.createElement( "ボタン") "newElem.setAttribute "onclickの"、「ymem_reg.switchPrefContentを(); " 「IE.Document.Body.InsertBefore newElem、IE.Document.Body.FirstChild 」IE.Document.Body.FirstChild.Click それは新しいボタンが作成されます:(動作しませんが、私はそれをクリックしたとき、何も起こりません。 –

関連する問題