Search code examples
javascripttextprintinglimit

LImit Characters in Java Script Print output


I am trying to limit the number of characters printed on a lable with a js file. The part of the code i am having problems with is called by a button and prints the contents from a preview box. Everything is working except the length of the title i am trying to print. When ever i add the code to limit the numbers of characters i get: TypeError: title.substring is not a function title = title.substring(0, 11); any ideas

// To allow for the TEMP SLU's to be printed from the main page in alpha order
$("#barcodesku").live('click', function(){
var title=[];
var sku=[];
var first = "";
var second = "";
var indexGlobal = 0;

    $('#acctRecords tbody tr').each(function()
	{
		sku.push($(this).find('#tableSKU').html());
		title.push ($(this).find('#tableTitle').html());
		
                
        });  //end of acctRecords tbody function
    
    //Print the bar codes
		title = title.substring(0,16);
		var x=0;
		for (x=0;x<sku.length;x++){
			
			
                        first += '$("#'+indexGlobal+'").barcode("'+sku[x]+'", "codabar",{barHeight:40, fontSize:30, output:"bmp"});';
			second += '<div class="wrapper"><img src="../images/temp.jpg" /><div id="'+indexGlobal+
			'"></div><div class="fullSKU">&nbsp &nbsp &nbsp '+sku[x]+'</div><br/><div class="title", {title.substring(0,16)}; >'+title[x]+' </div></div><br/><br/>';
			indexGlobal++;
			
 					
 			
					
			}
    var barcode =  window.open('','BarcodeWindow','width=200');
			var html = '<html><head><title>Barcode</title><style type="text/css">'+
   			'.page-break{display:block; page-break-before:always; }'+
			'body{width: 2in;}'+
			'.wrapper{height: 1in;margin-left:10px;margin-top:5px;margin-right:5px;}'+
			'.fullSKU{float: left;}'+
			'.shortSKU{float: right;font-size:25px;font-weight:bold;}'+
			'.title{float: left;}'+
			'</style><script type="text/javascript"src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.js"></script><script type="text/javascript" src="../barcode/jquery-barcode.js"></script><script>$(document).ready(function() {'+first+'window.print();window.close();});</script></head><body>'+second+'</body></html>';
			barcode.document.open();
			barcode.document.write(html);
			barcode.document.close();
			
}); // end of click function


Solution

  • From your code I see title is an array of titles. You need to do the following:

    for (var i = 0; i < title.length; i++) {
        title[i] = title[i].substring(0, 11); 
    }