javascript正确加载和查看所有内容的问题

javascript正确加载和查看所有内容的问题,javascript,widget,flash,alert,Javascript,Widget,Flash,Alert,好的,我有一个表单,它通过另一个页面的邮政编码小部件从一个请求加载。小部件在提交时立即在新页面上填充两个表单字段。我的问题是,我有一个相当复杂的一块闪光,以及有一个主要问题。我的flash本质上是一个饼图,在窗体复选框中的鼠标覆盖事件和onClick事件上亮起。除了在最初加载页面时javascript不会看到预填充复选框并执行相应的突出显示操作之外,它的工作方式与它应该的工作方式相同。这只发生在通过窗口小部件填充的字段中,如果用户选中了复选框,它就可以正常工作,因为我有一个onClick事件处理

好的,我有一个表单,它通过另一个页面的邮政编码小部件从一个请求加载。小部件在提交时立即在新页面上填充两个表单字段。我的问题是,我有一个相当复杂的一块闪光,以及有一个主要问题。我的flash本质上是一个饼图,在窗体复选框中的鼠标覆盖事件和onClick事件上亮起。除了在最初加载页面时javascript不会看到预填充复选框并执行相应的突出显示操作之外,它的工作方式与它应该的工作方式相同。这只发生在通过窗口小部件填充的字段中,如果用户选中了复选框,它就可以正常工作,因为我有一个onClick事件处理程序连接到它。我编写了一个预选函数,该函数将确定小部件是否预选了字段,然后将其向下传递以正确高亮显示(只要我具有警报功能,它就会这样做)。现在,如果我在脚本中添加一个警报(不管在哪里,因为我在每个函数中都尝试了它们),它的工作方式与假设的一样,可以看到小部件立即填充的字段,并按假设的方式高亮显示相应的字段。为什么警报框是唯一能让它工作的东西。这是最简单的警报,但删除它会破坏我的代码。有什么想法吗? 这是我的代码:(我在我所说的警报的两边放了三个*)

YAHOO.namespace(“SOME.Place.QuoteRequest”);
/**
*@projectDescription SOME.util.QuoteRequest是所有quote请求相关函数的命名空间。这是报价请求页面的补充控制器。
*@return(object)函数在解析时自动执行,并返回对其公共成员的引用
*@author网站开发
*@version 1.0
*/
SOME.PLACE.QuoteRequest=函数(){
/**
*全局对象的快捷方式
*/
var Dom=YAHOO.util.Dom,Event=YAHOO.util.Event;
/**
*函数将特殊错误处理程序添加到表单的邮政编码区域。邮政编码错误显示在此区域。此外,“继续”按钮有时是提交按钮,有时是按钮,具体取决于表单的其余部分是否可见。
*@param{Object}frm引用请求表单对象
*/
var addQuoteRequestZipCodeHandler=函数(frm){
如果(从开始到结束){
Event.addListener(frm.submitBtn,“click”,函数(e){
var errP=Dom.get(“error”),errMsg;
if(errP)errP.parentNode.removeChild(errP);
errMsg=SOME.util.Forms.validateFormField(this.zipCode.name,frm)
如果(errMsg){
事件.预防违约(e);
var p=document.createElement(“p”);
p、 id=“错误”;
var pText=document.createTextNode(errMsg);
p、 附肢儿童(pText);
Dom.insertBefore(p,“quoteZipLabel”);
} 
},frm,true);
}
};
/**
*用于管理产品复选框和金融安全闪存盘之间的交互的功能
*/
var CheckboxCollection=函数()
{
var odom=Dom.get(“finwheel”);
var ochklist=Dom.getElementsByClassName(“复选框”,“输入”,odom);
var boolArray=[假,假,假,假,假,假];
var-ctr=0;
for(var c=0;c YAHOO.namespace("SOME.Place.QuoteRequest");
/**
 * @projectDescription SOME.util.QuoteRequest is the namespace for all quote request related functions. This is a supplemental controller for quote request pages.
 * @return  (object) function executes automatically when parsed and returns references to it's public members 
 * @author  web development
 * @version 1.0
 */
SOME.PLACE.QuoteRequest = function () {
    /**
     * shortcuts to global objects
     */
    var Dom = YAHOO.util.Dom, Event = YAHOO.util.Event;

    /**
     * Function to add the special error handler to the zip code area of the form. Zip code errors display in this area. Also the continue button is sometimes a submit and sometimes a button depending on whether the rest of the form is visible.
     * @param {Object} frm the quote request form object
     */
    var addQuoteRequestZipCodeHandler = function(frm){
        if(frm.continueBtn){
            Event.addListener(frm.submitBtn, "click", function(e){                      
                var errP = Dom.get("error"), errMsg;
                if(errP) errP.parentNode.removeChild(errP);
                errMsg = SOME.util.Forms.validateFormField(this.zipCode.name, frm)
                if(errMsg){
                    Event.preventDefault(e);
                    var p = document.createElement("p");
                    p.id = "error";
                    var pText = document.createTextNode(errMsg);
                    p.appendChild(pText);
                    Dom.insertBefore(p, "quoteZipLabel");
                } 
            },frm, true);           

        }
    };

    /**
     * Function to manage the interaction between the product checkboxes and the financial security flash wheel
     */
    var CheckboxCollection = function()
    {
            var odom = Dom.get("finwheel");         
            var ochklist = Dom.getElementsByClassName("checkbox", "input", odom);

            var boolArray = [false,false,false,false,false,false];
            var ctr = 0;


            for(var c = 0 ; c < ochklist.length ; c++)
            {

                switch(ochklist[c].value.toUpperCase())
                {
                    case "AUTO": case "HOME": case "UMBRELLA": case "FARM": case "BUSINESS": //[Auto , Farm/Ranch/Crop, Home/Reuters, Umbrella, business]
                        if(ochklist[c].checked && ctr == 0)
                        {
                            ***alert("auto checked");***
                            boolArray[ctr] = ochklist[c].checked;
                            ctr = ctr+1;
                        }
                        break;
                    case "LIFE":  // [Life]
                        if(ctr == 0)
                        {
                            boolArray[ctr] = false;
                            ctr = ctr+1;
                        }

                        if(ochklist[c].checked && ctr == 1)
                        {   
                            boolArray[ctr] = ochklist[c].checked;
                            ctr = ctr+1;
                        }
                        break;
                    case "DI": case "LTC": case "MEDSUP": // [disability income , Medicare , Long term]
                        if(ctr == 1)
                        {
                            boolArray[ctr] = false;
                            ctr = ctr+1;
                        }

                        if(ochklist[c].checked && ctr == 2)
                        {
                            boolArray[ctr] = ochklist[c].checked;
                            ctr = ctr+1;
                        }
                        break;
                    case "RETIREMENT":
                        if(ctr == 2)
                        {
                            boolArray[ctr] = false;
                            ctr = ctr+1;
                        }

                        if(ochklist[c].checked && ctr == 3)
                        {
                            boolArray[ctr] = ochklist[c].checked;
                            ctr = ctr+1;
                        }
                        break;
                    case "EDUCATION":
                        if(ctr == 3)
                        {
                            boolArray[ctr] = false;
                            ctr = ctr+1;
                        }

                        if(ochklist[c].checked && ctr == 4)
                        {
                            boolArray[ctr] = ochklist[c].checked;
                            ctr = ctr+1;
                        }
                        break;
                    case "FINANCIAL":
                        if(ctr == 4)
                        {
                            boolArray[ctr] = false;
                            ctr = ctr+1;
                        }

                        if(ochklist[c].checked && ctr == 5)
                        {
                            boolArray[ctr] = ochklist[c].checked;
                            ctr = ctr+1;
                        }
                        break;
                }               
            }

        return boolArray;
    };

    /**
     * Function to add handlers to highlight the flash wheel
     * @param {Object} frm the quote request form object
     */
    var addQuoteRequestProductHandlers = function(frm){         
        if(document.URL.indexOf("@financialSecurityPlan") >= 0){
            document.getElementById("finSection").style.display = "none";
        }
        var imgs = Dom.getElementsByClassName("infoImg", "IMG", "quoteRequest");
        var oflash = Dom.get("flashfsWheel");       

        for(var i=0; i<imgs.length; i++){
            Event.addListener(imgs[i], 'mouseover', function(e){                                
                var titlenm = this.parentNode.id.substring(0,this.parentNode.id.indexOf("Title"));
                if(oflash) oflash.HighlightWheel(titlenm,"true","TITLE");
            });
            Event.addListener(imgs[i], 'mouseout', function(e){     
                var titlenm = this.parentNode.id.substring(0,this.parentNode.id.indexOf("Title"));
                if(oflash) oflash.HighlightWheel(titlenm,"false","TITLE");
            });
        }

       // Check to make sure pre-selected check box higlights corresponding flash pieces

        var preselect = CheckboxCollection();
        if(!preselect[5])
                    {
                        for(var f = 0 ; f < preselect.length ; f++ )
                        {
                            if(f == 0)
                                oflash.HighlightWheel("property",preselect[f],"CLICK");
                            else if(f == 1)
                                oflash.HighlightWheel("income",preselect[f],"CLICK");
                            else if(f == 2)
                                oflash.HighlightWheel("health",preselect[f],"CLICK");
                            else if(f == 3)
                                oflash.HighlightWheel("retirement",preselect[f],"CLICK");
                            else if(f == 4)
                                oflash.HighlightWheel("education",preselect[f],"CLICK");                                

                        }

                    }



        var secs = Dom.getElementsByClassName("formSection", "DIV", frm);
        Event.addListener(secs[2], "click", function(e) {
            var elTarget = Event.getTarget(e); 
            var oflash = Dom.get("flashfsWheel");
            if(elTarget.nodeName.toUpperCase() == "INPUT"){
                elTarget.value = elTarget.value.toLowerCase();
                //(pass elTarget.checked as the parm to say whether to light up or turn off)
                if(elTarget.value == "auto" || elTarget.value == "home" || elTarget.value == "farm" || elTarget.value == "umbrella" || elTarget.value == "business"){
                    //call flash piece to light up property piece
                    var bool = CheckboxCollection();
                    if( oflash && !bool[5] ) oflash.HighlightWheel("property",bool[0],"CLICK");
                    if(bool[0]) frm.needs[0].value = "property";
                    else frm.needs[0].value = "";
                }               
                else if (elTarget.value == "life"){
                    //call flash to light up income piece
                    var bool = CheckboxCollection();
                    if(oflash && !bool[5]) oflash.HighlightWheel("income",bool[1],"CLICK");
                    if(bool[1]) frm.needs[1].value= "income";
                    else frm.needs[1].value= "";
                }
                else if(elTarget.value == "di" || elTarget.value == "ltc" || elTarget.value == "medsup"){
                    //call flash to light up health piece
                    var bool = CheckboxCollection();
                    if(oflash && !bool[5]) oflash.HighlightWheel("health",bool[2],"CLICK");
                    if(bool[2]) frm.needs[2].value= "health";
                    else frm.needs[2].value= "";
                }
                else if(elTarget.value == "retirement"){
                    var bool = CheckboxCollection();
                    if(oflash && !bool[5] ) oflash.HighlightWheel("retirement",bool[3],"CLICK");
                    if(bool[3]) frm.needs[3].value= "retirementSavings";
                    else frm.needs[3].value= "";
                }
                else if(elTarget.value == "education"){
                    var bool = CheckboxCollection();
                    if(oflash && !bool[5] ) oflash.HighlightWheel("education",bool[4],"CLICK");
                    if(bool[4]) frm.needs[4].value= "education";
                    else frm.needs[4].value= "";
                }
                else if(elTarget.value == "financial"){                 
                    var bool = CheckboxCollection();                    
                    if(oflash) oflash.HighlightWheel("center",bool[5],"CLICK");

                    if(!bool[5])
                    {
                        for(var f = 0 ; f < bool.length ; f++ )
                        {
                            if(f == 0)
                                oflash.HighlightWheel("property",bool[f],"CLICK");
                            else if(f == 1)
                                oflash.HighlightWheel("income",bool[f],"CLICK");
                            else if(f == 2)
                                oflash.HighlightWheel("health",bool[f],"CLICK");
                            else if(f == 3)
                                oflash.HighlightWheel("retirement",bool[f],"CLICK");
                            else if(f == 4)
                                oflash.HighlightWheel("education",bool[f],"CLICK");                             

                        }
                    }

                    //call flash to light up whole thing
                }
            }
        });

    };

    /**
     * External method to call to highlight a product group for use by the financial needs flash wheel
     * id is the id of the product group title to highlight - propertyTitle, incomeTitle, healthTitle, retirementTitle, educationTitle, financialTitle
     * highlight is a boolean true or false to highlight or turn off highlight
     */
    var highlightProductGroup = function(id, highlight){

        if(highlight)
            Dom.addClass(id, id + "Highlight");
        else
            Dom.removeClass(id, id+ "Highlight");       
    };

    /**
     * function to kick off additional controllers for the quote request form
     * @param {Object} frm the quote request form object
     */
    var init = function(frm){       
        //add zip code handler
        addQuoteRequestZipCodeHandler(frm);

        if(frm.submitBtn){
            var quoteRep = Dom.get("quoteRep");
            if(quoteRep){
                //add flash wheel
                var output = '';
                if(SOME.domain.indexOf("cottonstates") != -1){
                    output += '<object height="370" width="390" data="flash/cottonStates/fiveNeedsWheel2.swf" type="application/x-shockwave-flash" id="flashfsWheel"><param value="flash/SOMEStates/fiveNeedsWheel2.swf" name="movie"/><param value="always" name="allowScriptAccess"/><param name="wmode" value="window"/><a class="external" href="http://www.adobe.com/go/getflashplayer"><img alt="Get Flash Player" src="images/button_getFlashPlayer.gif"/></a></object>';
                    //create the autocomplete object

                    SOME.widget.AutoComplete.init(quoteRep, "acResults", "/SiteController?url=/@AutoCompleteCS&forward=agentList.jsp", frm );
                }else{
                    output += '<object height="370" width="390" data="flash/financial/fiveNeedsWheel2.swf" type="application/x-shockwave-flash" id="flashfsWheel"><param value="flash/financial/fiveNeedsWheel2.swf" name="movie"/><param value="always" name="allowScriptAccess"/><param name="wmode" value="window"/><a class="external" href="http://www.adobe.com/go/getflashplayer"><img alt="Get Flash Player" src="images/button_getFlashPlayer.gif"/></a></object>';
                    //create the autocomplete object
                    SOME.widget.AutoComplete.init(quoteRep, "acResults", "/SiteController?url=/@allRepresentativesAutoComplete&forward=agentList.jsp", frm );   
                }                                   
                if(document.getElementById("fsWheel"))
                    document.getElementById("fsWheel").innerHTML = output;

                Dom.addClass(["infoPos5", "quoteEmailLabel", "quoteEmail"], "noDisplay");
            }

            //add phone or email handler
            SOME.util.Forms.initPhoneEmailFields(frm.phone, frm.customerEmail, true);

            //add flash product handlers
            addQuoteRequestProductHandlers(frm);

            //add submit handler
            Event.addListener(frm.submitBtn, "click", function(e){          

                var errs = SOME.util.Forms.validateForm(frm, {replaceErrorCodes: true, autoInsert : true, insertNode : Dom.getElementsByClassName("formSection")[0], showErrorHeader: true});                   

                if(errs.length > 0){
                    Event.preventDefault(e);
                    window.scrollTo(0,0);
                }
                else{
                    this.businessSubject.value = this.businessSubject.value + frm.firstName.value + " " + frm.lastName.value;
                }           
            },frm, true);           

        }

    };

    /**
     * return the public members of this singleton
     */
    return {
        init:init,
        highlightProductGroup:highlightProductGroup
    };
}();