0

The code below shows four drop-down menus. As you select a choice in the drop-down menu, it displays that choice as the bottom. It is very simple tool to create a four character code for my co-worker. It works but I know my JavaScript is very inefficient. The problem I am having is that there is a space between the characters. I was using DIV before and switched to SPAN thinking that would solve the space. We want to be able to quickly copy and paste the four characters from the window to an application, but the spaces get copied so we end up needing to delete them by hand. How do I eliminate the spaces from the four generated characters? Thanks.

<html>
<body>
<script type="text/javascript">
function dropdownYear(value){
    console.log(value);
        document.getElementById("year").innerHTML = value;
    }
function dropdownMarket(value){
    console.log(value);
        document.getElementById("market").innerHTML = value;
    }
function dropdownMonth(value){
    console.log(value);
        document.getElementById("month").innerHTML = value;
    }	
function dropdownRandom(value){
    console.log(value);
        document.getElementById("random").innerHTML = value;
    }	
</script>

<select onChange="dropdownYear(this.value)" name="search_type">
    <option value="Select Year">Select Year</option>   
    <option value="F">F</option>    
    <option value="G">G</option>
    <option value="H">H</option>
	<option value="J">J</option>
	<option value="K">K</option>
	<option value="L">L</option>
	<option value="M">M</option>
	<option value="N">N</option>
	<option value="P">P</option>
	<option value="Q">Q</option>
</select>
<br />
<select onChange="dropdownMarket(this.value)" name="search_type">
    <option value="Select Market">Select Market Category</option>   
    <option value="A">Buyers Guide</option>    
    <option value="B">Miscellaneous - All Markets Catalogs</option>
    <option value="C">Miscellaneous - All Markets Misc (Fax/e-mail/trade show/upsell)</option>
	<option value="E">EMS - Catalogs</option>
    <option value="F">EMS - Misc (Fax/e-mail/trade show/upsell)</option>
    <option value="G">Occ Health - Catalogs</option>
    <option value="H">Occ Health - Misc (Fax/e-mail/trade show/upsell)</option>
    <option value="J">Moore Brand</option>
    <option value="K">Primary Care - Catalogs</option>
    <option value="L">Primary Care - Misc (Fax/e-mail/trade show/upsell)</option>
    <option value="M">Resellers - Catalogs</option>
    <option value="N">Resellers - Misc (Fax/e-mail/trade show/upsell)</option>
    <option value="P">Podiary - Catalogs</option>
    <option value="Q">Podiary - Misc (Fax/e-mail/trade show/upsell)</option>
    <option value="S">School - Catalogs</option>
    <option value="T">School - Misc (Fax/e-mail/trade show/upsell)</option>
    <option value="W">Public Sector (Cor/FSL) - Catalogs</option>
    <option value="X">Public Sector (Cor/FSL) - Misc (Fax/e-mail/trade show/upsell)</option>
    <option value="Y">RX</option>
    <option value="Z">Reactivation</option>
</select>
<br />
<select onChange="dropdownMonth(this.value)" name="search_type">
    <option value="Select Month">Select Month</option>   
    <option value="A">January</option>    
    <option value="B">February</option>
    <option value="C">March</option>
	<option value="D">April</option>
	<option value="E">May</option>
	<option value="F">June</option>
	<option value="G">July</option>
	<option value="H">August</option>
	<option value="I">do not use</option>
	<option value="J">September</option>
	<option value="K">October</option>
	<option value="L">November</option>
	<option value="M">December</option>
</select>
<br />
<select onChange="dropdownRandom(this.value)" name="search_type">
    <option value="Select Random">Select Random</option>   
    <option value="0">0</option>    
    <option value="1">1</option>
    <option value="2">2</option>
	<option value="3">3</option>
	<option value="4">4</option>
	<option value="5">5</option>
	<option value="6">6</option>
	<option value="7">7</option>
	<option value="8">8</option>
	<option value="9">9</option>
    <option value="A">A</option>
    <option value="B">B</option>
     <option value="C">C</option>
</select>
<br /><br />
<span id="year"></span>
<span id="market"></span>
<span id="month"></span>
<span id="random"></span>
</body>
</html>

5 Answers 5

1

Simply remove the line-breaks between the <span> elements:

<span id="year"></span><span id="market"></span><span id="month"></span><span id="random"></span>

White-space, in HTML, collapses to a single-space (this includes line-breaks).

<html>
<body>
<script type="text/javascript">
function dropdownYear(value){
    console.log(value);
        document.getElementById("year").innerHTML = value;
    }
function dropdownMarket(value){
    console.log(value);
        document.getElementById("market").innerHTML = value;
    }
function dropdownMonth(value){
    console.log(value);
        document.getElementById("month").innerHTML = value;
    }	
function dropdownRandom(value){
    console.log(value);
        document.getElementById("random").innerHTML = value;
    }	
</script>

<select onChange="dropdownYear(this.value)" name="search_type">
    <option value="Select Year">Select Year</option>   
    <option value="F">F</option>    
    <option value="G">G</option>
    <option value="H">H</option>
	<option value="J">J</option>
	<option value="K">K</option>
	<option value="L">L</option>
	<option value="M">M</option>
	<option value="N">N</option>
	<option value="P">P</option>
	<option value="Q">Q</option>
</select>
<br />
<select onChange="dropdownMarket(this.value)" name="search_type">
    <option value="Select Market">Select Market Category</option>   
    <option value="A">Buyers Guide</option>    
    <option value="B">Miscellaneous - All Markets Catalogs</option>
    <option value="C">Miscellaneous - All Markets Misc (Fax/e-mail/trade show/upsell)</option>
	<option value="E">EMS - Catalogs</option>
    <option value="F">EMS - Misc (Fax/e-mail/trade show/upsell)</option>
    <option value="G">Occ Health - Catalogs</option>
    <option value="H">Occ Health - Misc (Fax/e-mail/trade show/upsell)</option>
    <option value="J">Moore Brand</option>
    <option value="K">Primary Care - Catalogs</option>
    <option value="L">Primary Care - Misc (Fax/e-mail/trade show/upsell)</option>
    <option value="M">Resellers - Catalogs</option>
    <option value="N">Resellers - Misc (Fax/e-mail/trade show/upsell)</option>
    <option value="P">Podiary - Catalogs</option>
    <option value="Q">Podiary - Misc (Fax/e-mail/trade show/upsell)</option>
    <option value="S">School - Catalogs</option>
    <option value="T">School - Misc (Fax/e-mail/trade show/upsell)</option>
    <option value="W">Public Sector (Cor/FSL) - Catalogs</option>
    <option value="X">Public Sector (Cor/FSL) - Misc (Fax/e-mail/trade show/upsell)</option>
    <option value="Y">RX</option>
    <option value="Z">Reactivation</option>
</select>
<br />
<select onChange="dropdownMonth(this.value)" name="search_type">
    <option value="Select Month">Select Month</option>   
    <option value="A">January</option>    
    <option value="B">February</option>
    <option value="C">March</option>
	<option value="D">April</option>
	<option value="E">May</option>
	<option value="F">June</option>
	<option value="G">July</option>
	<option value="H">August</option>
	<option value="I">do not use</option>
	<option value="J">September</option>
	<option value="K">October</option>
	<option value="L">November</option>
	<option value="M">December</option>
</select>
<br />
<select onChange="dropdownRandom(this.value)" name="search_type">
    <option value="Select Random">Select Random</option>   
    <option value="0">0</option>    
    <option value="1">1</option>
    <option value="2">2</option>
	<option value="3">3</option>
	<option value="4">4</option>
	<option value="5">5</option>
	<option value="6">6</option>
	<option value="7">7</option>
	<option value="8">8</option>
	<option value="9">9</option>
    <option value="A">A</option>
    <option value="B">B</option>
     <option value="C">C</option>
</select>
<br /><br />
<span id="year"></span><span id="market"></span><span id="month"></span><span id="random"></span>
</body>
</html>

You could also wrap the <span> elements inside of a parent container, and then float those child elements>:

#spanWrapper span {
    float: left;
}
<html>
<body>
<script type="text/javascript">
function dropdownYear(value){
    console.log(value);
        document.getElementById("year").innerHTML = value;
    }
function dropdownMarket(value){
    console.log(value);
        document.getElementById("market").innerHTML = value;
    }
function dropdownMonth(value){
    console.log(value);
        document.getElementById("month").innerHTML = value;
    }	
function dropdownRandom(value){
    console.log(value);
        document.getElementById("random").innerHTML = value;
    }	
</script>

<select onChange="dropdownYear(this.value)" name="search_type">
    <option value="Select Year">Select Year</option>   
    <option value="F">F</option>    
    <option value="G">G</option>
    <option value="H">H</option>
	<option value="J">J</option>
	<option value="K">K</option>
	<option value="L">L</option>
	<option value="M">M</option>
	<option value="N">N</option>
	<option value="P">P</option>
	<option value="Q">Q</option>
</select>
<br />
<select onChange="dropdownMarket(this.value)" name="search_type">
    <option value="Select Market">Select Market Category</option>   
    <option value="A">Buyers Guide</option>    
    <option value="B">Miscellaneous - All Markets Catalogs</option>
    <option value="C">Miscellaneous - All Markets Misc (Fax/e-mail/trade show/upsell)</option>
	<option value="E">EMS - Catalogs</option>
    <option value="F">EMS - Misc (Fax/e-mail/trade show/upsell)</option>
    <option value="G">Occ Health - Catalogs</option>
    <option value="H">Occ Health - Misc (Fax/e-mail/trade show/upsell)</option>
    <option value="J">Moore Brand</option>
    <option value="K">Primary Care - Catalogs</option>
    <option value="L">Primary Care - Misc (Fax/e-mail/trade show/upsell)</option>
    <option value="M">Resellers - Catalogs</option>
    <option value="N">Resellers - Misc (Fax/e-mail/trade show/upsell)</option>
    <option value="P">Podiary - Catalogs</option>
    <option value="Q">Podiary - Misc (Fax/e-mail/trade show/upsell)</option>
    <option value="S">School - Catalogs</option>
    <option value="T">School - Misc (Fax/e-mail/trade show/upsell)</option>
    <option value="W">Public Sector (Cor/FSL) - Catalogs</option>
    <option value="X">Public Sector (Cor/FSL) - Misc (Fax/e-mail/trade show/upsell)</option>
    <option value="Y">RX</option>
    <option value="Z">Reactivation</option>
</select>
<br />
<select onChange="dropdownMonth(this.value)" name="search_type">
    <option value="Select Month">Select Month</option>   
    <option value="A">January</option>    
    <option value="B">February</option>
    <option value="C">March</option>
	<option value="D">April</option>
	<option value="E">May</option>
	<option value="F">June</option>
	<option value="G">July</option>
	<option value="H">August</option>
	<option value="I">do not use</option>
	<option value="J">September</option>
	<option value="K">October</option>
	<option value="L">November</option>
	<option value="M">December</option>
</select>
<br />
<select onChange="dropdownRandom(this.value)" name="search_type">
    <option value="Select Random">Select Random</option>   
    <option value="0">0</option>    
    <option value="1">1</option>
    <option value="2">2</option>
	<option value="3">3</option>
	<option value="4">4</option>
	<option value="5">5</option>
	<option value="6">6</option>
	<option value="7">7</option>
	<option value="8">8</option>
	<option value="9">9</option>
    <option value="A">A</option>
    <option value="B">B</option>
     <option value="C">C</option>
</select>
<br /><br />
<div id="spanWrapper">
    <span id="year"></span>
    <span id="market"></span>
    <span id="month"></span>
    <span id="random"></span>
</div>
</body>
</html>

Sign up to request clarification or add additional context in comments.

Comments

0

Updated your code remove line brake between span tag

<html>
    <body>
    <script type="text/javascript">
    function dropdownYear(value){
        console.log(value);
            document.getElementById("year").innerHTML = value;
        }
    function dropdownMarket(value){
        console.log(value);
            document.getElementById("market").innerHTML = value;
        }
    function dropdownMonth(value){
        console.log(value);
            document.getElementById("month").innerHTML = value;
        }	
    function dropdownRandom(value){
        console.log(value);
            document.getElementById("random").innerHTML = value;
        }	
    </script>

    <select onChange="dropdownYear(this.value)" name="search_type">
        <option value="Select Year">Select Year</option>   
        <option value="F">F</option>    
        <option value="G">G</option>
        <option value="H">H</option>
    	<option value="J">J</option>
    	<option value="K">K</option>
    	<option value="L">L</option>
    	<option value="M">M</option>
    	<option value="N">N</option>
    	<option value="P">P</option>
    	<option value="Q">Q</option>
    </select>
    <br />
    <select onChange="dropdownMarket(this.value)" name="search_type">
        <option value="Select Market">Select Market Category</option>   
        <option value="A">Buyers Guide</option>    
        <option value="B">Miscellaneous - All Markets Catalogs</option>
        <option value="C">Miscellaneous - All Markets Misc (Fax/e-mail/trade show/upsell)</option>
    	<option value="E">EMS - Catalogs</option>
        <option value="F">EMS - Misc (Fax/e-mail/trade show/upsell)</option>
        <option value="G">Occ Health - Catalogs</option>
        <option value="H">Occ Health - Misc (Fax/e-mail/trade show/upsell)</option>
        <option value="J">Moore Brand</option>
        <option value="K">Primary Care - Catalogs</option>
        <option value="L">Primary Care - Misc (Fax/e-mail/trade show/upsell)</option>
        <option value="M">Resellers - Catalogs</option>
        <option value="N">Resellers - Misc (Fax/e-mail/trade show/upsell)</option>
        <option value="P">Podiary - Catalogs</option>
        <option value="Q">Podiary - Misc (Fax/e-mail/trade show/upsell)</option>
        <option value="S">School - Catalogs</option>
        <option value="T">School - Misc (Fax/e-mail/trade show/upsell)</option>
        <option value="W">Public Sector (Cor/FSL) - Catalogs</option>
        <option value="X">Public Sector (Cor/FSL) - Misc (Fax/e-mail/trade show/upsell)</option>
        <option value="Y">RX</option>
        <option value="Z">Reactivation</option>
    </select>
    <br />
    <select onChange="dropdownMonth(this.value)" name="search_type">
        <option value="Select Month">Select Month</option>   
        <option value="A">January</option>    
        <option value="B">February</option>
        <option value="C">March</option>
    	<option value="D">April</option>
    	<option value="E">May</option>
    	<option value="F">June</option>
    	<option value="G">July</option>
    	<option value="H">August</option>
    	<option value="I">do not use</option>
    	<option value="J">September</option>
    	<option value="K">October</option>
    	<option value="L">November</option>
    	<option value="M">December</option>
    </select>
    <br />
    <select onChange="dropdownRandom(this.value)" name="search_type">
        <option value="Select Random">Select Random</option>   
        <option value="0">0</option>    
        <option value="1">1</option>
        <option value="2">2</option>
    	<option value="3">3</option>
    	<option value="4">4</option>
    	<option value="5">5</option>
    	<option value="6">6</option>
    	<option value="7">7</option>
    	<option value="8">8</option>
    	<option value="9">9</option>
        <option value="A">A</option>
        <option value="B">B</option>
         <option value="C">C</option>
    </select>
    <br /><br />
    <span id="year"></span><span id="market"></span><span id="month"></span> <span id="random"></span>
    </body>
    </html>

Comments

0

How about keeping track of each variable seperatley then writing them all to the same element

<html>
<body>
<script type="text/javascript">
var year = "",
    market = "",
    month = "",
    random = "";
function dropdownYear(value){
    console.log(value);
        year = value;
  		writeToDocument()
    }
function dropdownMarket(value){
    console.log(value);
        market = value;
  		writeToDocument()
    }
function dropdownMonth(value){
    console.log(value);
        month = value;
  		writeToDocument()
    }	
function dropdownRandom(value){
    console.log(value);
        random = value;
  		writeToDocument()
    }
function writeToDocument()
  {
    document.getElementById("output").innerHTML = year+market+month+random;
   }
</script>

<select onChange="dropdownYear(this.value)" name="search_type">
    <option value="Select Year">Select Year</option>   
    <option value="F">F</option>    
    <option value="G">G</option>
    <option value="H">H</option>
	<option value="J">J</option>
	<option value="K">K</option>
	<option value="L">L</option>
	<option value="M">M</option>
	<option value="N">N</option>
	<option value="P">P</option>
	<option value="Q">Q</option>
</select>
<br />
<select onChange="dropdownMarket(this.value)" name="search_type">
    <option value="Select Market">Select Market Category</option>   
    <option value="A">Buyers Guide</option>    
    <option value="B">Miscellaneous - All Markets Catalogs</option>
    <option value="C">Miscellaneous - All Markets Misc (Fax/e-mail/trade show/upsell)</option>
	<option value="E">EMS - Catalogs</option>
    <option value="F">EMS - Misc (Fax/e-mail/trade show/upsell)</option>
    <option value="G">Occ Health - Catalogs</option>
    <option value="H">Occ Health - Misc (Fax/e-mail/trade show/upsell)</option>
    <option value="J">Moore Brand</option>
    <option value="K">Primary Care - Catalogs</option>
    <option value="L">Primary Care - Misc (Fax/e-mail/trade show/upsell)</option>
    <option value="M">Resellers - Catalogs</option>
    <option value="N">Resellers - Misc (Fax/e-mail/trade show/upsell)</option>
    <option value="P">Podiary - Catalogs</option>
    <option value="Q">Podiary - Misc (Fax/e-mail/trade show/upsell)</option>
    <option value="S">School - Catalogs</option>
    <option value="T">School - Misc (Fax/e-mail/trade show/upsell)</option>
    <option value="W">Public Sector (Cor/FSL) - Catalogs</option>
    <option value="X">Public Sector (Cor/FSL) - Misc (Fax/e-mail/trade show/upsell)</option>
    <option value="Y">RX</option>
    <option value="Z">Reactivation</option>
</select>
<br />
<select onChange="dropdownMonth(this.value)" name="search_type">
    <option value="Select Month">Select Month</option>   
    <option value="A">January</option>    
    <option value="B">February</option>
    <option value="C">March</option>
	<option value="D">April</option>
	<option value="E">May</option>
	<option value="F">June</option>
	<option value="G">July</option>
	<option value="H">August</option>
	<option value="I">do not use</option>
	<option value="J">September</option>
	<option value="K">October</option>
	<option value="L">November</option>
	<option value="M">December</option>
</select>
<br />
<select onChange="dropdownRandom(this.value)" name="search_type">
    <option value="Select Random">Select Random</option>   
    <option value="0">0</option>    
    <option value="1">1</option>
    <option value="2">2</option>
	<option value="3">3</option>
	<option value="4">4</option>
	<option value="5">5</option>
	<option value="6">6</option>
	<option value="7">7</option>
	<option value="8">8</option>
	<option value="9">9</option>
    <option value="A">A</option>
    <option value="B">B</option>
     <option value="C">C</option>
</select>
<br /><br />
<span id="output"></span>
</body>
</html>

Comments

0

Just output everything to a single span.

I've cleaned up your code a little here too:

<html>
<body>
<script type="text/javascript">
var d = [] //this is an array where we will store data
function dropdownApply(type,value){
    console.log(value);
    d[type] = value; //save the value to a specific position in the array
    document.getElementById("output").innerHTML = d.join('') //join all array data into a string and output it
}

</script>

<select onChange="dropdownApply(0,this.value)" name="search_type">
    <option value="Select Year">Select Year</option>   
    <option value="F">F</option>    
    <option value="G">G</option>
    <option value="H">H</option>
	<option value="J">J</option>
	<option value="K">K</option>
	<option value="L">L</option>
	<option value="M">M</option>
	<option value="N">N</option>
	<option value="P">P</option>
	<option value="Q">Q</option>
</select>
<br />
<select onChange="dropdownApply(1,this.value)" name="search_type">
    <option value="Select Market">Select Market Category</option>   
    <option value="A">Buyers Guide</option>    
    <option value="B">Miscellaneous - All Markets Catalogs</option>
    <option value="C">Miscellaneous - All Markets Misc (Fax/e-mail/trade show/upsell)</option>
	<option value="E">EMS - Catalogs</option>
    <option value="F">EMS - Misc (Fax/e-mail/trade show/upsell)</option>
    <option value="G">Occ Health - Catalogs</option>
    <option value="H">Occ Health - Misc (Fax/e-mail/trade show/upsell)</option>
    <option value="J">Moore Brand</option>
    <option value="K">Primary Care - Catalogs</option>
    <option value="L">Primary Care - Misc (Fax/e-mail/trade show/upsell)</option>
    <option value="M">Resellers - Catalogs</option>
    <option value="N">Resellers - Misc (Fax/e-mail/trade show/upsell)</option>
    <option value="P">Podiary - Catalogs</option>
    <option value="Q">Podiary - Misc (Fax/e-mail/trade show/upsell)</option>
    <option value="S">School - Catalogs</option>
    <option value="T">School - Misc (Fax/e-mail/trade show/upsell)</option>
    <option value="W">Public Sector (Cor/FSL) - Catalogs</option>
    <option value="X">Public Sector (Cor/FSL) - Misc (Fax/e-mail/trade show/upsell)</option>
    <option value="Y">RX</option>
    <option value="Z">Reactivation</option>
</select>
<br />
<select onChange="dropdownApply(2,this.value)" name="search_type">
    <option value="Select Month">Select Month</option>   
    <option value="A">January</option>    
    <option value="B">February</option>
    <option value="C">March</option>
	<option value="D">April</option>
	<option value="E">May</option>
	<option value="F">June</option>
	<option value="G">July</option>
	<option value="H">August</option>
	<option value="I">do not use</option>
	<option value="J">September</option>
	<option value="K">October</option>
	<option value="L">November</option>
	<option value="M">December</option>
</select>
<br />
<select onChange="dropdownApply(3,this.value)" name="search_type">
    <option value="Select Random">Select Random</option>   
    <option value="0">0</option>    
    <option value="1">1</option>
    <option value="2">2</option>
	<option value="3">3</option>
	<option value="4">4</option>
	<option value="5">5</option>
	<option value="6">6</option>
	<option value="7">7</option>
	<option value="8">8</option>
	<option value="9">9</option>
    <option value="A">A</option>
    <option value="B">B</option>
     <option value="C">C</option>
</select>
<br /><br />
<span id="output"></span>
</body>
</html>

Comments

0

Maybe try to alter the javascript for something like this:

var finalCode;

function dropdownYear(value){
    console.log(value);
    document.getElementById("year").innerHTML = value;
    var mkt = document.getElementById("market").innerHTML = value;
    var mth = document.getElementById("month").innerHTML = value;
    var rdm = document.getElementById("random").innerHTML = value;
    document.getElementById("finalCode").innerHTML = value + mkt + mth + rdm;
    }

... (other functions as the above)

And add to the HTML:

<span id="random"></span>

Comments

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.