Thread: Need result to be a specific number of characters

1. Registered User
Join Date
Sep 2011
Posts
13

Need result to be a specific number of characters

What I'm looking to do with the following form is when a user inputs a certain length width and depth the output will be set to a certain number of characters. Basically looking to add a zero before an input of a number lower than 10 in two fields (product_number & product_id)

For example if a user inputs:
Length: 20.25 Width: 5.625 Depth: 9.125

the output I would like to have would be:

product_number: RSC_20.25_05.63_09.13

product_id: 1203056091

Right now the output looks like this:

product_number: RSC_20.25_5.63_9.13

product_id: 12035691

The reason for this is so when I sort my products in my shop they will go in the correct numerical order as well as making everything easier to maintain. I only need it to be 2 digits before the decimal point because the max number input will never be over 99...

Here is the code:

Code:
<html>
<script>
Number.prototype.eighths= function(prec, ret){
prec= prec || 8;
while(prec%4)++prec;
var i= Math.floor(this),
s= i? i +'-':'',
num= this-i, div= 1/prec, mod= prec/4,
mag= Math.pow(10, Math.log(prec*2)/Math.log(2)),
f1= Math.round(mag*(num/div))/mag,
f= Math.round(f1);
if(f1-f> div/4) f= Math.ceil(f1);
if(f== 0) return i;
if(f== prec) return i+1;
if(ret=== 1) return s+f+'/'+prec;
if(f*2== prec) return s+'1/2';
while(mod>= 2){
if(f%mod=== 0) return s+ f/mod+'/'+prec/mod;
mod/= 2;
}
return s+f+'/'+prec;
}
function calculate(){
var F=document.frmRSC,

l= Number(F.txtlength.value);
w= Number(F.txtwidth.value);
d= Number(F.txtdepth.value);

Q = Number(F.txtqty.value)				/* Quantity */

Lrounded = (Math.ceil(l/.125)/8)
Wrounded = (Math.ceil(w/.125)/8)
Drounded = (Math.ceil(d/.125)/8)

F.product_number.value= 'RSC_'+Lrounded.toFixed(2)+'_'+Wrounded.toFixed(2)+'_'+Drounded.toFixed(2);

F.product_id.value= '1' + (Lrounded.toFixed(1)*10) + '' + Wrounded.toFixed(1)*10 + '' + Drounded.toFixed(1)*10

}
</script>
<form name= "frmRSC">
<table width="100%" border="1"><td>

<div class="ccms_form_element cfdiv_text" id="txtlength_container_div"><label for="txtlength">txtlength</label><input

id="txtlength" maxlength="150" size="30" class=" validate['required','number']" title="" label_over="0" hide_label="0" type="text"

value="" name="txtlength" />
<div class="clear"></div><div id="error-message-txtlength"></div></div>

<div class="ccms_form_element cfdiv_text"

id="txtwidth_container_div"><label for="txtwidth">txtwidth</label><input id="txtwidth" maxlength="150" size="30" class="

validate['required','number']" title="" label_over="0" hide_label="0" type="text" value="" name="txtwidth" />
<div class="clear"></div><div id="error-message-txtwidth"></div></div>

<div class="ccms_form_element cfdiv_text"

id="txtdepth_container_div"><label for="txtdepth">txtdepth</label><input id="txtdepth" maxlength="150" size="30" class="

validate['required','number']" title="" label_over="0" hide_label="0" type="text" value="" name="txtdepth" />
<div class="clear"></div><div id="error-message-txtdepth"></div></div>
</td></table>

<table width="100%" border="1"><td>

<p>product_number <input type= "text" name= product_number size= 25 value= ""></p>
<br><br>

<input type= "hidden" name= category_id size= 25 value= "">

<p>product_id <input type= "text" name= product_id size= 25 value= ""></p>
<br><br>

<input type= "hidden" name= product_full_image size= 25 value= "">

Quantity: <INPUT TYPE = "Text" NAME = txtqty SIZE = 5 value ="">
<br><br>

<p><input type= "button" name= "b1" value= "Convert" onClick= "calculate()"></p>

</td>
</table>
</form>
thanks,
Matt

2. Just added a padLeft function...
Code:
<html>
<script type="text/javascript">
Number.prototype.eighths= function(prec, ret){
prec= prec || 8;
while(prec%4)++prec;
var i= Math.floor(this),
s= i? i +'-':'',
num= this-i, div= 1/prec, mod= prec/4,
mag= Math.pow(10, Math.log(prec*2)/Math.log(2)),
f1= Math.round(mag*(num/div))/mag,
f= Math.round(f1);
if(f1-f> div/4) f= Math.ceil(f1);
if(f== 0) return i;
if(f== prec) return i+1;
if(ret=== 1) return s+f+'/'+prec;
if(f*2== prec) return s+'1/2';
while(mod>= 2){
if(f%mod=== 0) return s+ f/mod+'/'+prec/mod;
mod/= 2;
}
return s+f+'/'+prec;
}
function padLeft(str, width) {
while (str.length < width) { str = "0" + str; }
return str;
}
function calculate(){
var F=document.frmRSC,

l= Number(F.txtlength.value);
w= Number(F.txtwidth.value);
d= Number(F.txtdepth.value);

Q = Number(F.txtqty.value)				/* Quantity */

Lrounded = (Math.ceil(l/.125)/8).toFixed(2);
Wrounded = (Math.ceil(w/.125)/8).toFixed(2);
Drounded = (Math.ceil(d/.125)/8).toFixed(2)

F.product_number.value = 'RSC_'+padLeft(Lrounded,5)
+ '_'+padLeft(Wrounded,5)+ '_'+padLeft(Drounded,5);

F.product_id.value = '1' + (Lrounded.toFixed(1)*10)
+ '' + Wrounded.toFixed(1)*10 + '' + Drounded.toFixed(1)*10

}
</script>
</head>
<body>
<form name= "frmRSC">
<table width="100%" border="1">
<td>

<div class="ccms_form_element cfdiv_text" id="txtlength_container_div">
<label for="txtlength">txtlength</label>
<input id="txtlength" maxlength="150" size="30" class=" validate['required','number']"
title="" label_over="0" hide_label="0" type="text" value="" name="txtlength" />
<div class="clear"></div>
<div id="error-message-txtlength"></div>
</div>

<div class="ccms_form_element cfdiv_text" id="txtwidth_container_div">
<label for="txtwidth">txtwidth</label>
<input id="txtwidth" maxlength="150" size="30"
class=" validate['required','number']" title="" label_over="0"
hide_label="0" type="text" value="" name="txtwidth" />
<div class="clear"></div>
<div id="error-message-txtwidth"></div>
</div>

<div class="ccms_form_element cfdiv_text" id="txtdepth_container_div">
<label for="txtdepth">txtdepth</label>
<input id="txtdepth" maxlength="150" size="30"
class=" validate['required','number']" title="" label_over="0"
hide_label="0" type="text" value="" name="txtdepth" />
<div class="clear"></div>
<div id="error-message-txtdepth"></div>
</div>
</td>
</table>

<table width="100%" border="1">
<td>
<p>product_number <input type= "text" name= product_number size= 25 value= ""></p>
<br><br>

<input type= "hidden" name= category_id size= 25 value= "">
<p>product_id <input type= "text" name= product_id size= 25 value= ""></p>
<br><br>
<input type= "hidden" name= product_full_image size= 25 value= "">
Quantity: <INPUT TYPE = "Text" NAME = txtqty SIZE = 5 value ="">
<br><br>
<p><input type= "button" name= "b1" value= "Convert" onClick= "calculate()"></p>
</td>
</table>
</form>
</body>
</html>

3. Registered User
Join Date
Sep 2011
Posts
13
Thanks again JMRKER! Not the first time you've helped me solve an issue

4. You're most welcome.
Happy to help.
Good Luck!

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

• You may not post new threads
• You may not post replies
• You may not post attachments
• You may not edit your posts
•