Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Мой скрипт упрощение (https://javascript.ru/forum/project/60502-mojj-skript-uproshhenie.html)

Кирилл Сухарев 04.01.2016 08:15

Мой скрипт упрощение
 
Здравствуйте.
Написал скрипт, но он очень громоздкий, как мне его упростить, кто знает, подскажите.
function u1() {r1.value=parseFloat(a1.value*b1.value).toFixed(2) ;}
function u2() {r2.value=parseFloat(a2.value*b2.value).toFixed(2) ;}
function u3() {r3.value=parseFloat(a3.value*b3.value).toFixed(2) ;}
function u4() {r4.value=parseFloat(a4.value*b4.value).toFixed(2) ;}
function u5() {r5.value=parseFloat(a5.value*b5.value).toFixed(2) ;}
function u6() {r6.value=parseFloat(a6.value*b6.value).toFixed(2) ;}
function u7() {r7.value=parseFloat(a7.value*b7.value).toFixed(2) ;}
function u8() {r8.value=parseFloat(a8.value*b8.value).toFixed(2) ;}
function u9() {r9.value=parseFloat(a9.value*b9.value).toFixed(2) ;}
и так 300 раз

yazonnile 04.01.2016 10:40

function setValue(r, a, b) {
	r.value = parseFloat(a.value * b.value).toFixed(2);
}

setValue(r9, a9, b9);
setValue(r1, a1, b1);


или

function setValue(a, b) {
	return parseFloat(a.value * b.value).toFixed(2);
}

r9.value = setValue(a9, b9);
r1.value = setValue(a1, b1);

Кирилл Сухарев 04.01.2016 11:40

Спасибо!

Кирилл Сухарев 04.01.2016 11:58

Ещё там же пытаюсь открыть в новом окне
данные из другого окна
с одним js файлом, но они не открываются:
файл 1

<td> <input type="hidden" id="k_111" style="width: 0px" value="111"/>111</td>
<td style="background:#FFFEFE; width:15px;"></td>
<td> <input type="hidden" id="n111" style="width: 100px" value="Titanium White"/>Titanium White</td>
<td> <input type="sum" id="b1" style="width: 30px" value="8.00"disabled/></td>

js файл

function print0() {pr0.value="Number: "+k_111.value+" Name: "+n111.value+" "+ac24.value+" Goods: "+a1.value+" Amount: "+r1.value+" "+ac50.value+" Goods: "+a2.value+" Amount: "+r2.value+" "+ac85.value+" Goods: "+a3.value+" Amount: "+r3.value+" "+ac135.value+" Goods: "+a4.value+" Amount: "+r4.value;}
function buttonClicked(){
window.open("nw.php");

nw.php файл

<td>
<input type="button" value="form" onclick="print0()">
<input id="pr0" style="width: 700px" class="colortext">
</td>

не открывается.

прчему, не пойму, если это прописываю в первом файле всё открывается.

Deff 04.01.2016 14:12

Кирилл Сухарев,
Желательно отформатировать код для удобочтения: http://javascript.ru/formatting
Пример:
<td>
 <input type="button" value="form" onclick="print0()">
 <input id="pr0" style="width: 700px" class="colortext">
 </td>

Кнопки в форме ответа-редактирования

Кирилл Сухарев 09.01.2016 09:22

Ещё там же пытаюсь открыть в новом окне
данные из другого окна
с одним js файлом, но они не открываются:
файл 1
<td> <input type="hidden" id="k_111" style="width: 0px" value="111"/>111</td>
<td style="background:#FFFEFE; width:15px;"></td>
<td> <input type="hidden" id="n111" style="width: 100px" value="Titanium White"/>Titanium White</td>
<td> <input type="sum" id="b1" style="width: 30px" value="8.00"disabled/></td>


function print0() {pr0.value="Number: "+k_111.value+" Name: "+n111.value+" "+ac24.value+" Goods: "+a1.value+" Amount: "+r1.value+" "+ac50.value+" Goods: "+a2.value+" Amount: "+r2.value+" "+ac85.value+" Goods: "+a3.value+" Amount: "+r3.value+" "+ac135.value+" Goods: "+a4.value+" Amount: "+r4.value;} 
function buttonClicked(){
window.open("nw.php");


nw.php файл

<td>
<input type="button" value="form" onclick="print0()">
<input id="pr0" style="width: 700px" class="colortext">
</td>


не открывается.

прчему, не пойму, если это прописываю в первом файле всё открывается.

Deff 10.01.2016 00:50

Цитата:

Сообщение от Кирилл Сухарев
Написал скрипт, но он очень громоздкий, как мне его упростить, кто знает, подскажите.
function u1() {r1.value=parseFloat(a1.value*b1.value).toFixed(2)  ;}
 function u2() {r2.value=parseFloat(a2.value*b2.value).toFixed(2)  ;}
 function u3() {r3.value=parseFloat(a3.value*b3.value).toFixed(2)  ;}
 function u4() {r4.value=parseFloat(a4.value*b4.value).toFixed(2)  ;}
 function u5() {r5.value=parseFloat(a5.value*b5.value).toFixed(2)  ;}
 function u6() {r6.value=parseFloat(a6.value*b6.value).toFixed(2)  ;}
 function u7() {r7.value=parseFloat(a7.value*b7.value).toFixed(2)  ;}
 function u8() {r8.value=parseFloat(a8.value*b8.value).toFixed(2)  ;}
 function u9() {r9.value=parseFloat(a9.value*b9.value).toFixed(2)  ;}

.

Вариант, /но eval вообще не рекомендуют применять/
function toFixedRN(n) {
       str = 'r'+n+'.value=parseFloat(a'+n+'.value*b'+n+'.value).toFixed(2)';
       eval(str);
 }
for(var n = 1; n<301;n++) {
  toFixedRN(n);
}

Правильнее многоэлементы rn an и bn превращать в массив (Cделать их ранее массивами, и тогда безо всяких еval)

for(var n = 1; n<301;n++) {
  r[n].value=parseFloat(a[n].value*b[n].value).toFixed(2);
}

=========================
Цитата:

Сообщение от Кирилл Сухарев
прчему, не пойму, если это прописываю в первом файле всё открывается.

Лучше ссылку на страницу с попыткой (Ибо кривое объяснение, и непонятно насколько правильно стоит скрипт на странице

Кирилл Сухарев 12.01.2016 14:44

Deff,
Дык пока обкатываю в denwer

Кирилл Сухарев 12.01.2016 14:45

Deff,
Вы не могли бы написать мне скрипт, не бесплатно конечно, только связь получше какую нибудь надо, мыло или скайп.

Deff 12.01.2016 14:47

Кирилл Сухарев,
Я занят, обратитсь в Раздел Работа, там нормальные скриптёры и быстро
Ruslan_XDD, Decode


Часовой пояс GMT +3, время: 22:26.