NO ME RESULTA FUNCION .js URGENTE!!!!

elisa44
07 de Febrero del 2006
Hola,
Alguien me podrá ayudar, tengo el siguiente código:
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="css/mktree.css" rel="stylesheet" type="text/css">
<link href="templates/switch/style.css" rel="stylesheet" type="text/css">
<script language="JavaScript" src="script/script.js"></script>
<script language="JavaScript">
function esNumero(Nro)
{
var charCode
if (navigator.appName == "Netscape") // me fijo
charCode = Nro.which; // leo la tecla en ASCII que ingreso
else
charCode = Nro.keyCode; // leo la tecla en ASCII que ingreso
//if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode != 44)
if (charCode < 48 || charCode > 57)
{
//alert("Esto no es un Numero !!");
return false;
}
return true;
}
function grabar() {
if(document.headerForm.rut.value!="")
{

if(!valida_rut(document.headerForm.rut.value,document.headerForm.dv.value))
{

alert("Rut Erroneo");
document.headerForm.rut.focus();
return false;
}
}
else {
document.headerForm.submit();
return true;
}
}
</script>
</head>
<body>
<div id="content">
<div id="formTable">
<form action="" method="post" name="headerForm" id="headerForm">
<table border="1" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td>Rut</td>
<td><input name="rut" type="text" id="rut" onKeyPress="return esNumero(event)" /></td>
<td>-</td>
<td><input name="dv" type="text" class="inputDv" id="dv" maxlength="1" /></td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="4"><button type="reset" name="btnReset" id="btnReset">Cancelar</button>
<button type="submit" name="btnSave" id="btnSave" onclick="return grabar();">Grabar</button>
<button type="submit" name="btnExit" id="btnExit">Salir</button></td>
</tr>
</tfoot>
</table>
</form>
</div>
</div>
</body>
</html>

y la siguiente función que se llama script.js que está en el directorio script, pero no me funciona:

function valida_rut(crut,dv)
{
var rut=crut;
var largo=rut.length;
var i=0;
var dv=dv;
var mult=2;
var suma=0;
largo--;
while(largo>=0)
{
suma=suma+(rut.charAt(largo)*mult);
if(mult>6)
mult=2;
else
mult++;
largo--;
}
var resto = suma%11;
var digito = 11-resto
if(digito==10)
digito="K" || digito="k";
else
if(digito==11)
digito=0;
if(digito!=dv)
return false;
else
return true;
}

Gracias

NINCHI
07 de Febrero del 2006
tu fallo es el siguiente, la línea 44 del script.js no tiene sentido.
digito="K" || digito="k"

Esto no tiene sentido, para cobrar sentido tendría que estar dentro de una condicion if, y con signos = dobles,como por ejemplo

if(digito=="K" || digito=="k")
{}

también tendría sentido si fuera una asignación dle tipo:
digito="K";

Un saludo
dudas? http://usuarios.lycos.es/lawebdelninchi