выполнение кода в строке
Добрый день всем!
есть такой нтмл код: <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,
Не совсем понял ваши манипуляции с 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> |
спасибо за ответ, я нашел ошибку, у меня на странице генерилось 2 инпута с одинаковым айди поэтому евал не выполнялся
|
Часовой пояс GMT +3, время: 13:21. |