Ver Mensaje Individual
  #4 (permalink)  
Antiguo 15/11/2011, 16:23
Avatar de arcanisgk122
arcanisgk122
 
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 11 meses
Puntos: 28
Respuesta: adaptar script para que sea dinamico

des pues de varios intento no he logrado hacerlo funcionar para trabajar con una sola función, actualizo el post con lo que tengo hasta el momento:

Script

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2.         function calcula1(){
  3.             var operf1 = document.getElementById("pfrs");
  4.             var operando1 = operf1.selectedIndex;
  5.             var ope1 = operf1.options[operando1];
  6.             var pfrs = ope1.value;
  7.             document.form1.frs.value = pfrs;
  8.             document.form1.pfrs.disabled=this.value!='';
  9.             }
  10.             function calcula2(){
  11.             var operf2 = document.getElementById("pdes");
  12.             var operando2 = operf2.selectedIndex;
  13.             var ope2 = operf2.options[operando2];
  14.             var pdes = ope2.value;
  15.             document.form1.des.value = pdes;
  16.             document.form1.pdes.disabled=this.value!='';
  17.             }
  18.             function calcula3(){
  19.             var operf3 = document.getElementById("psab");
  20.             var operando3 = operf3.selectedIndex;
  21.             var ope3 = operf3.options[operando3];
  22.             var psab = ope3.value;
  23.             document.form1.sab.value = psab;
  24.             document.form1.psab.disabled=this.value!='';
  25.             }
  26.             var global= new Array(0, 0, 0, 0, 0);
  27.             function statpoint(elemSelect, indiceArray){
  28.                 var pointset= parseInt(elemSelect.options[elemSelect.selectedIndex].text);
  29.                 var datpast= global[indiceArray];
  30.                 var atrset= document.getElementById("atr");
  31.                 var atrpoint= parseInt(atrset.value);
  32.                 atrpoint=atrpoint-datpast;
  33.                 atrset.value=atrpoint+pointset;
  34.                 global[indiceArray]=pointset;
  35.             }
  36.         </script>

Codigo html select options y mas:

Código HTML:
Ver original
  1. <form name="form1" method="post" id="form1" action="nchar.php" >
  2.         <label>
  3.             <select id="pfrs" name="pfrs" size="1" onchange="calcula1(this.options.selectedIndex);statpoint(this, 0)">
  4.                 <option value="5">-50</option>
  5.                 <option value="6">-40</option>
  6.                 <option value="7">-30</option>
  7.                 <option value="8">-20</option>
  8.                 <option value="9">-10</option>
  9.                 <option value="10" selected="selected">0</option>
  10.                 <option value="11">10</option>
  11.                 <option value="12">20</option>
  12.                 <option value="13">30</option>
  13.                 <option value="14">45</option>
  14.                 <option value="15">60</option>
  15.                 <option value="16">80</option>
  16.                 <option value="17">100</option>
  17.                 <option value="18">125</option>
  18.                 <option value="19">150</option>
  19.                 <option value="20">200</option>
  20.             </select>
  21.             <input type="text" name="frs" id="frs" value="10" maxlength="3" size="4" readonly="readonly"/>
  22.             <br />
  23.             <select id="pdes" name="pdes" size="1" onchange="calcula2(this.options.selectedIndex);statpoint(this, 1)">
  24.                 <option value="5">-50</option>
  25.                 <option value="6">-40</option>
  26.                 <option value="7">-30</option>
  27.                 <option value="8">-20</option>
  28.                 <option value="9">-10</option>
  29.                 <option value="10" selected="selected">0</option>
  30.                 <option value="11">10</option>
  31.                 <option value="12">20</option>
  32.                 <option value="13">30</option>
  33.                 <option value="14">45</option>
  34.                 <option value="15">60</option>
  35.                 <option value="16">80</option>
  36.                 <option value="17">100</option>
  37.                 <option value="18">125</option>
  38.                 <option value="19">150</option>
  39.                 <option value="20">200</option>
  40.             </select>
  41.             <input type="text" name="des" id="des" value="10" maxlength="3" size="4" readonly="readonly" />
  42.             <br />
  43.             <select id="psab" name="psab" size="1" onchange="calcula3(this.options.selectedIndex);statpoint(this, 2)">
  44.                 <option value="5">-50</option>
  45.                 <option value="6">-40</option>
  46.                 <option value="7">-30</option>
  47.                 <option value="8">-20</option>
  48.                 <option value="9">-10</option>
  49.                 <option value="10" selected="selected">0</option>
  50.                 <option value="11">10</option>
  51.                 <option value="12">20</option>
  52.                 <option value="13">30</option>
  53.                 <option value="14">45</option>
  54.                 <option value="15">60</option>
  55.                 <option value="16">80</option>
  56.                 <option value="17">100</option>
  57.                 <option value="18">125</option>
  58.                 <option value="19">150</option>
  59.                 <option value="20">200</option>
  60.             </select>
  61.             <input type="text" name="sab" id="sab" value="10" maxlength="3" size="4" readonly="readonly" />
  62.             <br />
  63.             <select id="pvig" name="pvig" size="1" onchange="calcula4(this.options.selectedIndex);statpoint(this, 3)">
  64.                 <option value="5">-50</option>
  65.                 <option value="6">-40</option>
  66.                 <option value="7">-30</option>
  67.                 <option value="8">-20</option>
  68.                 <option value="9">-10</option>
  69.                 <option value="10" selected="selected">0</option>
  70.                 <option value="11">10</option>
  71.                 <option value="12">20</option>
  72.                 <option value="13">30</option>
  73.                 <option value="14">45</option>
  74.                 <option value="15">60</option>
  75.                 <option value="16">80</option>
  76.                 <option value="17">100</option>
  77.                 <option value="18">125</option>
  78.                 <option value="19">150</option>
  79.                 <option value="20">200</option>
  80.             </select>
  81.             <input type="text" name="vig" id="vig" value="10" maxlength="3" size="4" readonly="readonly" />
  82.             <br />
  83.             <select id="pesp" name="pesp" size="1" onchange="calcula5(this.options.selectedIndex);statpoint(this, 4)">
  84.                 <option value="1" selected="selected">0</option>
  85.                 <option value="2">50</option>
  86.                 <option value="3">100</option>
  87.                 <option value="4">150</option>
  88.                 <option value="5">200</option>
  89.                 <option value="6">250</option>
  90.                 <option value="7">300</option>
  91.                 <option value="8">350</option>
  92.                 <option value="9">400</option>
  93.                 <option value="10">450</option>
  94.             </select>
  95.             <input type="text" name="esp" id="esp" value="1" maxlength="3" size="4" readonly="readonly" />
  96.             <br />
  97.             <input name="atr" id="atr" value="0" readonly="readonly" />
  98.         </label>
  99.     </form>

agradezco si alguien puede aportar algo a como simplificar el código javascript
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB