Как сделать так чтоб если в инпут ввести процент от 1 до 100, то...
Как сделать так чтоб если в инпут ввести процент от 1 до 100, то в другую ячейку таблицы выведется процент от заданного числа
и ещё это надо завернуть в функцию, просто я javascript только изучаю |
<html> <head> </head> <body> <table> <tr> <td> type number: </td> <td> type percent: </td> <td> result </td> </tr> <tr> <td> <input id="number" /> </td> <td> <input id="percent" /></td> <td> <input id="result" > </td> </tr> </table> <button> get </button> <script> get=document.querySelector.bind(document) number=get("#number") percent=get("#percent") result=get("#result") button=get("button") button.onclick=function(){result.value=percent.value*(number.value/100)} </script> </body> </html> |
можно и без кнопки
<html> <head> </head> <body> <table> <tr> <td> type number: </td> <td> type percent: </td> <td> result </td> </tr> <tr> <td> <input id="number" /> </td> <td> <input id="percent" /></td> <td> <input id="result" > </td> </tr> </table> <script> get=document.querySelector.bind(document) number=get("#number") percent=get("#percent") result=get("#result") getPercent=function(){ if((number.value==="")||(percent.value==="")) return result.value="waiting..." result.value=percent.value*(number.value/100) } number.oninput=getPercent percent.oninput=getPercent </script> </body> </html> |
а можно ли сделать чтоб не по ID а вот так:
.getElementById('row_0').cells[2].getElementsByTagName('input').value Просто у меня большая таблица и там будет много таких подсчётов, и по id делать будет очень трудно, так как придётся вписывать около 1000 id |
Вот так, вроде, получается
<html> <head> </head> <body> <table> <tr> <td> type number: </td> <td> type percent: </td> <td> result </td> </tr> <tr> <td> <input /> </td> <td> <input /></td> <td> <input /> </td> </tr> <tr> <td> <input /> </td> <td> <input /></td> <td> <input /> </td> </tr> <tr> <td> <input /> </td> <td> <input /></td> <td> <input /> </td> </tr> </table> <script> table=document.querySelector("table") trs=(table.querySelectorAll("tr")) add=function(inputs){ var number=inputs[0] var percent=inputs[1] var result=inputs[2] var getPercent=function(){ if((number.value==="")||(percent.value==="")) return result.value="waiting..." result.value=percent.value*(number.value/100) } number.oninput=getPercent percent.oninput=getPercent } for(var i=1; i<trs.length; i++) { add(trs[i].querySelectorAll("input")) } </script> </body> </html> |
Спасибо вам за скрипт, конечно придётся под пилить, но вы мне очень помогли
|
:write:
на всякий случай Цитата:
result.value=percent.value*(number.value/100) |
рони,
Вроде, мой вариант работает, в чем проблема? Я исходил из того, что заданное число -- это поле number. Поясни пжста, я в мат-ке не силен:) |
krutoy,
6 процент 1 результат 0.06 у ТС результат 16.666666666666668 |
да это я исправил
result.value=(number.value*percent.value)/100 |
Часовой пояс GMT +3, время: 11:39. |