Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.12.2014, 14:23
Интересующийся
Отправить личное сообщение для Влад Громов Посмотреть профиль Найти все сообщения от Влад Громов
 
Регистрация: 20.12.2014
Сообщений: 22

Как сделать так чтоб если в инпут ввести процент от 1 до 100, то...
Как сделать так чтоб если в инпут ввести процент от 1 до 100, то в другую ячейку таблицы выведется процент от заданного числа
и ещё это надо завернуть в функцию, просто я javascript только изучаю
Ответить с цитированием
  #2 (permalink)  
Старый 20.12.2014, 22:44
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

<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>

Последний раз редактировалось krutoy, 21.12.2014 в 15:21.
Ответить с цитированием
  #3 (permalink)  
Старый 20.12.2014, 23:00
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

можно и без кнопки
<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>

Последний раз редактировалось krutoy, 21.12.2014 в 14:58.
Ответить с цитированием
  #4 (permalink)  
Старый 21.12.2014, 09:08
Интересующийся
Отправить личное сообщение для Влад Громов Посмотреть профиль Найти все сообщения от Влад Громов
 
Регистрация: 20.12.2014
Сообщений: 22

а можно ли сделать чтоб не по ID а вот так:
.getElementById('row_0').cells[2].getElementsByTagName('input').value

Просто у меня большая таблица и там будет много таких подсчётов, и по id делать будет очень трудно, так как придётся вписывать около 1000 id
Ответить с цитированием
  #5 (permalink)  
Старый 21.12.2014, 10:54
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

Вот так, вроде, получается
<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>

Последний раз редактировалось krutoy, 21.12.2014 в 14:58.
Ответить с цитированием
  #6 (permalink)  
Старый 21.12.2014, 14:18
Интересующийся
Отправить личное сообщение для Влад Громов Посмотреть профиль Найти все сообщения от Влад Громов
 
Регистрация: 20.12.2014
Сообщений: 22

Спасибо вам за скрипт, конечно придётся под пилить, но вы мне очень помогли
Ответить с цитированием
  #7 (permalink)  
Старый 21.12.2014, 14:41
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112


на всякий случай
Сообщение от Влад Громов
процент от заданного числа
result.value=percent.value*(number.value/100)
Ответить с цитированием
  #8 (permalink)  
Старый 21.12.2014, 14:44
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

рони,
Вроде, мой вариант работает, в чем проблема? Я исходил из того, что заданное число -- это поле number. Поясни пжста, я в мат-ке не силен
Ответить с цитированием
  #9 (permalink)  
Старый 21.12.2014, 14:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

krutoy,
6 процент 1 результат 0.06
у ТС результат 16.666666666666668
Ответить с цитированием
  #10 (permalink)  
Старый 21.12.2014, 14:56
Интересующийся
Отправить личное сообщение для Влад Громов Посмотреть профиль Найти все сообщения от Влад Громов
 
Регистрация: 20.12.2014
Сообщений: 22

да это я исправил
result.value=(number.value*percent.value)/100
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открытие div блока при первом визите на сайт Nushaba Общие вопросы Javascript 28 20.12.2013 21:24
Как не дать пользователю ввести неправильное значение в текстовый инпут ? boraldo Events/DOM/Window 4 12.04.2012 15:43
Как сделать как в JQ? faforty Общие вопросы Javascript 8 14.11.2011 01:35
30(1|2) редирект от сервера. Или как лучше сделать редирект при верной отсылке форма. pizzZ AJAX и COMET 2 18.02.2010 09:06
Подскажите как сделать меню на CSS если: greatilya (X)HTML/CSS 10 18.10.2009 20:26