1

Hi I am 15 and just starting to learn HTML CSS and JavaScript.

I am trying to edit a drop down menu for listing all 50 states on a checkout page, by default it is blank when the page loads and i want it to say "State". I am trying to make one more option that says "State" with a attribute of selected and disabled. I have no clue on how to do this because it is all JavaScript and i have looked online and have found nothing.

So i need some help on how to do this, i have no idea how to do it in JavaScript

I didn't write any of this code and i don't know what most of it even does, that is why i gave you the whole document, i am just trying to edit it.

Here is the JavaScript/PHP i am trying to edit.

// If you have PHP you can set the post values like this
//var postState = '<?= $_POST["state"] ?>';
//var postCountry = '<?= $_POST["country"] ?>';
var postState = 'US';
var postCountry = 'FL';

// State table
//
// To edit the list, just delete a line or add a line. Order is important.
// The order displayed here is the order it appears on the drop down.
//
var stateList = '\
US:AL:Alabama|\
US:AK:Alaska|\
CA:AB:Alberta|\
US:AZ:Arizona|\
US:AR:Arkansas|\
CA:BC:British Columbia|\
US:CA:California|\
US:CO:Colorado|\
US:CT:Connecticut|\
US:DE:Delaware|\
US:DC:District of Columbia|\
US:FL:Florida|\
US:GA:Georgia|\
US:HI:Hawaii|\
US:ID:Idaho|\
US:IL:Illinois|\
US:IN:Indiana|\
US:IA:Iowa|\
US:KS:Kansas|\
US:KY:Kentucky|\
US:LA:Louisiana|\
US:ME:Maine|\
CA:MB:Manitoba|\
US:MD:Maryland|\
US:MA:Massachusetts|\
US:MI:Michigan|\
US:MN:Minnesota|\
US:MS:Mississippi|\
US:MO:Missouri|\
US:MT:Montana|\
US:NE:Nebraska|\
US:NV:Nevada|\
CA:NB:New Brunswick|\
US:NH:New Hampshire|\
US:NJ:New Jersey|\
US:NM:New Mexico|\
US:NY:New York|\
CA:NL:Newfoundland and Labrador|\
US:NC:North Carolina|\
US:ND:North Dakota|\
CA:NT:Northwest Territories|\
CA:NS:Nova Scotia|\
CA:NU:Nunavut|\
US:OH:Ohio|\
US:OK:Oklahoma|\
CA:ON:Ontario|\
US:OR:Oregon|\
US:PA:Pennsylvania|\
CA:PE:Prince Edward Island|\
US:PR:Puerto Rico|\
CA:QC:Quebec|\
US:RI:Rhode Island|\
CA:SK:Saskatchewan|\
US:SC:South Carolina|\
US:SD:South Dakota|\
US:TN:Tennessee|\
US:TX:Texas|\
US:UT:Utah|\
US:VT:Vermont|\
US:VI:Virgin Islands|\
US:VA:Virginia|\
US:WA:Washington|\
US:WV:West Virginia|\
US:WI:Wisconsin|\
US:WY:Wyoming|\
CA:YT:Yukon Territory|\
';

// Country data table
//
// To edit the list, just delete a line or add a line. Order is important.
// The order displayed here is the order it appears on the drop down.
//
var country = '\
AF:Afghanistan|\
AX:Aland Islands|\
AL:Albania|\
DZ:Algeria|\
AS:American Samoa|\
AD:Andorra|\
AO:Angola|\
AI:Anguilla|\
AQ:Antarctica|\
AG:Antigua & Barbuda|\
AR:Argentina|\
AM:Armenia|\
AW:Aruba|\
AU:Australia|\
AT:Austria|\
AZ:Azerbaijan|\
AP:Azores|\
BS:Bahamas|\
BH:Bahrain|\
BD:Bangladesh|\
BB:Barbados|\
BY:Belarus|\
BE:Belgium|\
BZ:Belize|\
BJ:Benin|\
BM:Bermuda|\
BT:Bhutan|\
BO:Bolivia|\
BL:Bonaire|\
BA:Bosnia|\
BW:Botswana|\
BV:Bouvet Island|\
BR:Brazil|\
VG:British Virgin Islands|\
BN:Brunei|\
BG:Bulgaria|\
BF:Burkina Faso|\
BI:Burundi|\
KH:Cambodia|\
CM:Cameroon|\
CA:Canada|\
IC:Canary Islands|\
CV:Cape Verde Islands|\
KY:Cayman Islands|\
CF:Central African Republic|\
TD:Chad|\
CD:Channel Islands|\
CL:Chile|\
CN:China|\
CX:Christmas Island|\
CC:Cocos (keeling) Islands|\
CO:Colombia|\
CG:Congo|\
CK:Cook Islands|\
CR:Costa Rica|\
CI:Cote Divoire|\
HR:Croatia|\
CB:Curacao|\
CY:Cyprus|\
CZ:Czech Republic|\
DK:Denmark|\
DJ:Djibouti|\
DM:Dominica|\
DO:Dominican Republic|\
EC:Ecuador|\
EG:Egypt|\
SV:El Salvador|\
EN:England|\
GQ:Equitorial Guinea|\
ER:Eritrea|\
EE:Estonia|\
ET:Ethiopia|\
FO:Faeroe Islands|\
FK:Falkland Islands (Malvinas)|\
FJ:Fiji|\
FI:Finland|\
FR:France|\
GF:French Guiana|\
PF:French Polynesia|\
TF:French Southern Territories|\
GA:Gabon|\
GM:Gambia|\
GE:Georgia|\
DE:Germany|\
GH:Ghana|\
GI:Gibraltar|\
GR:Greece|\
GL:Greenland|\
GD:Grenada|\
GP:Guadeloupe|\
GU:Guam|\
GT:Guatemala|\
GG:Guernsey|\
GN:Guinea|\
GW:Guinea-Bissau|\
GY:Guyana|\
HT:Haiti|\
HM:Heard Island and Mcdonald Islands|\
HO:Holland|\
VA:Holy See (Vatican City State)|\
HN:Honduras|\
HK:Hong Kong|\
HU:Hungary|\
IS:Iceland|\
IN:India|\
ID:Indonesia|\
IR:Iran|\
IQ:Iraq|\
IE:Ireland|\
IM:Isle of Man|\
IL:Israel|\
IT:Italy|\
JM:Jamaica|\
JP:Japan|\
JE:Jersey|\
JO:Jordan|\
KZ:Kazakhstan|\
KE:Kenya|\
KI:Kiribati|\
KP:Korea, Democratic People\'s Republic of|\
KR:Korea, Republic of|\
KO:Kosrae|\
KW:Kuwait|\
KG:Kyrgyzstan|\
LA:Laos|\
LV:Latvia|\
LB:Lebanon|\
LS:Lesotho|\
LR:Liberia|\
LY:Libyan Arab Jamahiriya|\
LI:Liechtenstein|\
LT:Lithuania|\
LU:Luxembourg|\
MO:Macau|\
MK:Macedonia, Republic of|\
MG:Madagascar|\
MW:Malawi|\
MY:Malaysia|\
MV:Maldives|\
ML:Mali|\
MT:Malta|\
MH:Marshall Islands|\
MQ:Martinique|\
MR:Mauritania|\
MU:Mauritius|\
YT:Mayotte|\
MX:Mexico|\
FM:Micronesia, Federated States of|\
MD:Moldova|\
MC:Monaco|\
MN:Mongolia|\
ME:Montenegro, Republic of|\
MS:Montserrat|\
MA:Morocco|\
MZ:Mozambique|\
MM:Myanmar|\
NA:Namibia|\
NR:Nauru|\
NP:Nepal|\
NL:Netherlands|\
AN:Netherlands Antilles|\
NC:New Caledonia|\
NZ:New Zealand|\
NI:Nicaragua|\
NE:Niger|\
NG:Nigeria|\
NU:Niue|\
NF:Norfolk Island|\
NB:Northern Ireland|\
MP:Northern Mariana Islands|\
NO:Norway|\
OM:Oman|\
PK:Pakistan|\
PW:Palau|\
PS:Palestinian Territory, Occupied|\
PA:Panama|\
PG:Papua New Guinea|\
PY:Paraguay|\
PE:Peru|\
PH:Philippines|\
PN:Pitcairn Island|\
PL:Poland|\
PO:Ponape|\
PT:Portugal|\
PR:Puerto Rico|\
QA:Qatar|\
RE:Reunion|\
RO:Romania|\
RT:Rota|\
RU:Russia|\
RW:Rwanda|\
SS:Saba|\
SP:Saipan|\
SM:San Marino|\
ST:Sao Tome and Principe|\
SA:Saudi Arabia|\
SF:Scotland|\
SN:Senegal|\
RS:Serbia, Republic of|\
SC:Seychelles|\
SL:Sierra Leone|\
SG:Singapore|\
SK:Slovakia|\
SI:Slovenia|\
SB:Solomon Islands|\
SO:Somalia|\
ZA:South Africa|\
ES:Spain|\
LK:Sri Lanka|\
NT:St. Barthelemy|\
SW:St. Christopher|\
SX:St. Croix|\
EU:St. Eustatius|\
UV:St. John|\
KN:St. Kitts &amp; Nevis|\
LC:St. Lucia|\
MB:St. Maarten|\
TB:St. Martin|\
VL:St. Thomas|\
VC:St. Vincent & the Grenadines|\
SD:Sudan|\
SR:Suriname|\
SZ:Swaziland|\
SE:Sweden|\
CH:Switzerland|\
SY:Syrian Arab Republic|\
TA:Tahiti|\
TW:Taiwan|\
TJ:Tajikistan|\
TZ:Tanzania|\
TH:Thailand|\
TL:Timor-Leste|\
TI:Tinian|\
TG:Togo|\
TO:Tonga|\
TT:Trinidad and Tobago|\
TU:Truk|\
TN:Tunisia|\
TR:Turkey|\
TM:Turkmenistan|\
TC:Turks & Caicos Islands|\
TV:Tuvalu|\
UG:Uganda|\
UA:Ukraine|\
UI:Union Island|\
AE:United Arab Emirates|\
GB:United Kingdom|\
US:United States|\
UY:Uruguay|\
VI:US Virgin Islands|\
UZ:Uzbekistan|\
VU:Vanuatu|\
VE:Venezuela|\
VN:Vietnam|\
VR:Virgin Gorda|\
WK:Wake Island|\
WL:Wales|\
WF:Wallis and Futuna|\
EH:Western Sahara|\
WS:Western Samoa|\
YA:Yap|\
YE:Yemen|\
ZR:Zaire|\
ZM:Zambia|\
ZW:Zimbabwe|\
';

country = country.substring(0, country.length-1) // Deleting the last "|" character

function get_Element(i)
{
    return document.getElementById(i) || document.getElementsByName(i).item(0);
}

function TrimString(sInString) {
  if ( sInString ) {
    sInString = sInString.replace( /^\s+/g, "" );// strip leading
    return sInString.replace( /\s+$/g, "" );// strip trailing
  }
}

// Populates the country selected with the counties from the country list

function populateCountry(defaultCountry,countryfieldname) {
  if (defaultCountry=="") {defaultCountry="US"}

  var countryLineArray = country.split('|');  // Split into lines
  var selObj = get_Element(countryfieldname);
  if (!selObj) return;

  selObj.options[0] = new Option('','');
  selObj.selectedIndex = 0;



    for (var loop = 0; loop < countryLineArray.length; loop++) {
        lineArray = countryLineArray[loop].split(':');
        countryCode  = TrimString(lineArray[0]);
        countryName  = TrimString(lineArray[1]);

        if ( countryCode != '' ) { selObj.options[loop] = new Option(countryName, countryCode); }       
        if ( defaultCountry == countryCode ) { selObj.selectedIndex = loop; }
    }
}


function populateState(statefieldname,countryfieldname,state1,optionalCreateTextField) {
    //optionalCreateTextField = optional parameter, true/false. When a country doesn't have state, it'll determine if the code creates a text field for the state or just let the dropdown empty.

    var isOpera = false, isIE = false;  
    var strClassName;
    var originalTabIndex;

    if(typeof(window.opera) != 'undefined')
        {isOpera = true;}  
    if(!isOpera && (navigator.userAgent.indexOf('Internet Explorer') > 0 || navigator.userAgent.indexOf('MSIE') > 0) && navigator.userAgent.indexOf('MSIE 9') < 0 && navigator.userAgent.indexOf('MSIE 10') < 0)
        {isIE = true;}

    if (state1==undefined) {state1='';}

    postCountry=get_Element(countryfieldname);
    if (!postCountry) return;
    postCountry=postCountry.value;

    var selObj = get_Element(statefieldname);
    if (!selObj) return;
    var foundState = false;

    originalTabIndex = selObj.getAttribute("tabindex");

    // Empty options just in case new drop down is shorter
    if ( selObj.type == 'select-one' ) {

      selObj.options.length = 0;

     // selObj.options[0] = new Option('Select State','');
     // selObj.selectedIndex = 0;
   }
   // Populate the drop down with states from the selected country
   //
   var stateLineArray   = stateList.split("|");        // Split into lines
   var optionCntr = 0;
   for (var loop = 0; loop < stateLineArray.length; loop++) {

      lineArray = stateLineArray[loop].split(":");
      countryCode  = TrimString(lineArray[0]);
      stateCode    = TrimString(lineArray[1]);
      stateName    = TrimString(lineArray[2]);

      if ( get_Element(countryfieldname).value == countryCode && countryCode != '' ) {

         // If it's a input element, change it to a select
         //
         if ( selObj.type == 'text' ) {

            strClassName = selObj.className;

            parentObj = get_Element(statefieldname).parentNode;

            // Create the Input Field
            if(!isIE){    
                var inputSel = document.createElement("SELECT");
                inputSel.setAttribute("name", statefieldname);
                if (strClassName != 'undefined' && strClassName != '')
                    inputSel.setAttribute("class",strClassName);
                else
                    inputSel.setAttribute("class","txtBoxStyle");
                inputSel.setAttribute("id", statefieldname); 
            } 
            else 
            {    
                var inputSel = document.createElement("<select name="+statefieldname+" id="+statefieldname+">");
                if (strClassName != 'undefined' && strClassName != '')
                    inputSel.setAttribute("className",strClassName);
                else
                    inputSel.setAttribute("className","txtBoxStyle");                   
            }
            inputSel.setAttribute("tabindex", originalTabIndex); 
            parentObj.insertBefore(inputSel, selObj.nextSibling);
            parentObj.removeChild(selObj);
            selObj = get_Element(statefieldname);
         }

         if (optionCntr==0)
         {
            selObj.options[optionCntr] = new Option('','');
            selObj.selectedIndex = optionCntr;
            optionCntr++;
        }

         if ( stateCode != '' ) {
            selObj.options[optionCntr] = new Option(stateName, stateCode);
         }
         // See if it's selected from a previous post
         //
         if ( stateCode == state1 && countryCode == postCountry ) {

            selObj.selectedIndex = optionCntr;
         }
         foundState = true;
         optionCntr++
      }
   }
   // If the country has no states, change the select to a text box
   //
   if ( ! foundState ) {

        if (postCountry == 'ALL')
        {
            //var selObj = get_Element(statefieldname);
            selObj.options.length = 0;
            selObj.options[0] = new Option('ALL','ALL');
            selObj.selectedIndex = 0;
        }
        else
        {
            if (optionalCreateTextField == undefined)
                var createText = true;
            else
                var createText = optionalCreateTextField;

            if (createText)
            {
                strClassName = selObj.className;
                parentObj = get_Element(statefieldname).parentNode;

                // Create the Input Field
                if(!isIE){
                    var inputEl = document.createElement("input");
                    inputEl.setAttribute("name", statefieldname);
                    if (strClassName != 'undefined' && strClassName != '')
                        inputEl.setAttribute("class",strClassName);
                    else
                        inputEl.setAttribute("class","txtBoxStyle");
                    inputEl.setAttribute("id", statefieldname); 
                } 
                else 
                {    
                    var inputEl = document.createElement("<input name=\""+statefieldname+"\" id=\""+statefieldname+"\" />");
                    if (strClassName != 'undefined' && strClassName != '')
                        inputEl.setAttribute("className",strClassName);
                    else
                        inputEl.setAttribute("className","txtBoxStyle");                    
                }  
                inputEl.setAttribute("tabindex", originalTabIndex); 
                inputEl.setAttribute("type", "text"); 
                inputEl.setAttribute("size", 20); 
                inputEl.setAttribute("value", state1); 
                parentObj.insertBefore(inputEl, selObj.nextSibling);
                parentObj.removeChild(selObj);
            }
        }
   }

}

function insertCountry(strCountryName,countryfieldname) {
    var selObj = get_Element(countryfieldname);
    if (!selObj) return;
    selObj.options[selObj.options.length] = new Option('ALL','ALL');
    selObj.selectedIndex = selObj.options.length-1;
}   

function initCountry(country,state1,statefieldname,countryfieldname) {
  populateCountry(country,countryfieldname);
  populateState(statefieldname,countryfieldname,state1);
}


function GetValue(formx,name1) {
//alert(name1);
var i;
    for(i=0;i<formx.elements.length;i++) {
      if(formx.elements[i].name==name1) {
        return formx.elements[i].value;
      }
    } 
  }

And Here is the HTML

<div class="chkField">
<label for="billing_state">[CustomerInfo_state]</label>
<select id="billing_state" onchange="this.form.billing_zip.value='';check_address('billing');" name="billing_state" tabindex="9" class="txtBoxStyle">
</select>

I don't know how to edit JavaScript very well but it seems to be creating HTML options on the web page and i dont know how to create another one that says "States", any help would be much appreciated.

Thanks,

Andrew

1 Answer 1

1

try to use append() function of jquery like if your html is like

<html>
  <select id="temp"></select>
</html>


$("#temp").append("<option>Your Value</option>")
Sign up to request clarification or add additional context in comments.

4 Comments

is there a way that my added option could be placed at the top?
$("#temp option:first").before("<option>Your value</optiopn>")
Thank you so much! i has been working on this problem for a WEEK!
no need to thank bud...jus keep coding and you'll learn things with expereince

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.