我正在编写一个与HTML DOM交互的VB应用程序。
如果我转到此页面:
https://edit.yahoo.com/registration
然后尝试将右上方的“我喜欢的内容”从“选择默认选项”中的“Yahoo! Asia”更改为“Yahoo! Asia”,我可以使用此命令执行此操作:
Document.Forms.regFormBody.preferredcontent.selectedIndex = 10
它成功地改变了它。但问题是,它与您手动将该选项更改为Yahoo!的行为不同。亚洲使用你的鼠标。
如果您尝试在不使用DOM的情况下手动执行此操作,则在更改后,页面会刷新。
我假设它是一个javascript调用或根据选择的选项刷新该页面的东西,但我试图使用DOM复制该行为,我只是无法搞清楚。
有人可以帮忙吗?提前谢谢。
答案 0 :(得分: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();
}
}
}