HTML DOM:如何调用SELECT框的更新方法?

时间:2009-06-28 03:26:10

标签: html dom html-select

我正在编写一个与HTML DOM交互的VB应用程序。

如果我转到此页面:

https://edit.yahoo.com/registration

然后尝试将右上方的“我喜欢的内容”从“选择默认选项”中的“Yahoo! Asia”更改为“Yahoo! Asia”,我可以使用此命令执行此操作:

Document.Forms.regFormBody.preferredcontent.selectedIndex = 10

它成功地改变了它。但问题是,它与您手动将该选项更改为Yahoo!的行为不同。亚洲使用你的鼠标。

如果您尝试在不使用DOM的情况下手动执行此操作,则在更改后,页面会刷新。

我假设它是一个javascript调用或根据选择的选项刷新该页面的东西,但我试图使用DOM复制该行为,我只是无法搞清楚。

有人可以帮忙吗?提前谢谢。

1 个答案:

答案 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();
        }
    }
}