Hola:
Tenías que haber planteado este problema desde el principio, porque me parece que la solución es muy distinta...
Yo usaría en el select el evento change (onchange) para mostrar una capa u otra y a la vez habilitaría y deshabilitaría los ratos...
<select onchange="cambiar(this)" >
... con los 2 valores que planteas yo pondría 2 capas (no sé si estás usando tablas... pero lo que importa es la metodología:
<div id="unidades">
<input type="text" name="cantidadmax" />
</div>
<div id="lotes" style="display: none">
<input type="text" name="cantidadxlote" disabled />
<input type="text" name="artsxunidad" disabled />
</div>
Y luego cambiar sería más o menos...
function cambiar(sitio) {
s1 = sitio.options[sitio.selectedIndex].text;
s2 = (s1 == "unidades") ? "lotes" : "unidades";
document.getElementById(s1).style.display = "block";
document.getElementById(s1).style.display = "none";
sitio.form.cantidadmax.disabled = (s1 == "lotes");
sitio.form.cantidadxlote.disabled = (s1 == "unidades");
sitio.form.artsxunidad.disabled = (s1 == "unidades");
}
Lo puse de memoria, así que puede tener muchos fallos...
Saludos