Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.03.2016, 19:17
Интересующийся
Отправить личное сообщение для Tyoma5891 Посмотреть профиль Найти все сообщения от Tyoma5891
 
Регистрация: 26.02.2016
Сообщений: 10

выполнение кода в строке
Добрый день всем!
есть такой нтмл код:
<input id="textinput-0" name="textinput-0" type="text" placeholder="placeholder" class="input-xlarge"><div id='resultCalc'></div><br><input type='button' value='Расчитать' class='calculate'>
<div class="CalcSource" style="display:none;">parseInt($('#textinput-0').val())*56</div>
		  <div class="tempCalcSource" style="display:none;"></div>

strSource =eval($(".CalcSource").html());
console.log(strSource);

$( ".tempCalcSource" ).html("<script>$('.calculate').click(function(){$('#resultCalc').html(("+strSource+").toFixed(2));});</script>");

в консоли показывает все красиво и верно parseInt($('#textinput-0').val())*56 а вот само выражение eval(strSource) почему то всегда возвращает NaN также как и при нажатии на кнопку рассчитать? подскажите плиз, что делаю не так, может евал не использовать?
немного изменил код теперь выдает ошибку VM8926:1 Uncaught TypeError: Cannot read property 'toFixed' of undefined

Последний раз редактировалось Tyoma5891, 21.03.2016 в 20:52.
Ответить с цитированием
  #2 (permalink)  
Старый 22.03.2016, 11:41
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Tyoma5891,
Не совсем понял ваши манипуляции с tempCalcSource - почему просто не разместить скрипт в head
(во всяком случае угловые скобки в тексте надо экранировать)
strSource убрал - иначе ее пришлось бы вставлять внутрь функции обработки click

<!DOCTYPE html >
<html>
<head>
  <title>eval</title>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
  <script type="text/javascript">
     window.onload = function () {
      $(".tempCalcSource").html("\<script\>$('.calculate').click( function(){$('#resultCalc').html(eval($('.CalcSource').html()).toFixed(2));});\</script\>");
    }
  </script>
</head>
<body>
   <input id="textinput-0" name="textinput-0" type="text" placeholder="placeholder" class="input-xlarge">
   <div id='resultCalc'></div>
   <br><input type='button' value='Рассчитать' class='calculate'>
   <div class="CalcSource" style="display:none;">parseInt($('#textinput-0').val())*56</div>
   <div class="tempCalcSource" style="display:none;"></div>
</body>
</html>

Последний раз редактировалось Dilettante_Pro, 22.03.2016 в 13:01.
Ответить с цитированием
  #3 (permalink)  
Старый 22.03.2016, 18:53
Интересующийся
Отправить личное сообщение для Tyoma5891 Посмотреть профиль Найти все сообщения от Tyoma5891
 
Регистрация: 26.02.2016
Сообщений: 10

спасибо за ответ, я нашел ошибку, у меня на странице генерилось 2 инпута с одинаковым айди поэтому евал не выполнялся
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дождаться завершения функции и продолжить выполнение кода XRASER Events/DOM/Window 4 10.04.2014 16:39
Выполнение кода в браузерной строке dlgodyf9 Javascript под браузер 3 01.07.2013 22:30
Пошаговое выполнение кода KamalovRadik jQuery 2 28.10.2011 20:46
При выполнение строки кода вылетаю из функции. developer_ Events/DOM/Window 3 28.07.2011 00:45
Последовательное выполнение кода avtor01 AJAX и COMET 6 29.10.2008 19:06