El número de entrada del campo de formulario se convierte automáticamente a 3 dígitos al agregar cero al frente

Intento crear un formulario en el que los usuarios puedan ingresar un número de página y saltar a una página determinada identificada por su ID div.

$(document).ready(function() { $('#gotopage').submit( function() { goUrl = 'index.html#pg-' + $('#pagenumber').val().toLowerCase(); window.location = goUrl; return false; // Prevent the default form behaviour }); });

Puedo hacer que funcione bien, excepto que nombré mi ID de manera que sus 3 dígitos, por ejemplo:

,

,

y así sucesivamente.

¿Hay alguna manera de modificar mi código anterior para que pueda agregar los ceros relevantes para formar un número de 3 dígitos para cualquier número que ingrese el usuario?

Gracias de antemano.

Podrías crear una función para esto así:

 function padNum(num,length) { length = length || 3;num+=""; while(num.length < length) num="0"+num; return num; } 

Ejemplos:

 var newid = padNum(3);//003 var newid = padNum(3,4);//0003 

Función más corta (pero menos legible) si se quiere

 function padNum(num,length) { return Array((length||3)-((num+"").length-1)).join("0")+num; } 

Nota: las funciones están predeterminando el parámetro de longitud a 3 cuando no se especifica

usó este código:

 function pad (str, max) { return str.length < max ? pad("0" + str, max) : str; } 

Salida:

 pad("12", 3); // => "012" 
 var num = $('#pagenumber').val().toLowerCase(); var len = num.length; var result = [0, 0].slice(0, len < 4 ? 3 - len : 0).join('') + num; 

Violín