JavaScript/HTML калькулятор

295
08 августа 2017, 13:49

 $(document).ready(function() { 
 
var o = '<form action="#">' 
  + rrl('pirr', true) 
  + rrl('year', true) 
  + rrl('pirp') 
  + rrl('mrpp') 
  + rrl('mrpr') 
  + rrl('ntrd') 
  +'<hr>' 
  + rrl('res1') 
  + rrl('ndsp') 
  + rrl('res2') 
+'</form>'; 
 
$('#calc').html(o).css({border: '10px solid #eaf1f1', background: '#fff'}); 
 
$('#year').change(function() { 
  set('mrpr', $(this).val()); 
}).change(); 
$('#pirr').change(function() { 
  set('pirr', get('pirr'), 3); 
}).change(); 
 
set('mrpp', get('mrpp')); 
 
$('#calc input, #calc select').bind('change input', function() { 
  calc(); 
}).eq(0).change(); 
 
}); 
 
function calc() { 
  set('pirp', get('pirr') * (get('mrpp') / get('mrpr')), 3); 
  if (get('pirp') > c['ppir']) { 
    set('ntrd', c['nkff'] * Math.pow(get('pirp'), c['npow']), 2); 
  }else{ 
    set('ntrd', get('pirp') / c['ppir'] * c['nchd'], 2); 
  } 
  set('res1', c['psod'] * get('ntrd'), 0); 
  if (get('res1') < c['mres']) set('res1', c['mres'], 1); 
  set('res2', get('res1') * (get('ndsp') / 100 + 1), 0); 
} 
 
function get(id) { 
  var ret = $('#'+ id).val().replace(/[^0-9.,]/g, ''); 
  ret = parseFloat(ret.replace(',', '.')); 
  if (isNaN(ret)) ret = 0; 
  return ret; 
} 
 
function set(id, val, round) { 
  if (!round) round = 0; 
  var pow = Math.pow(10, round); 
  val = (Math.round(val * pow) / pow).toFixed(round); 
  val = String(val); 
  val = val.replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 ').replace('.', ','); 
  if (id === 'pirr' && !parseFloat(val)) val = ''; 
  $('#'+ id).val(val); 
} 
 
function rrl(id, en) { 
  var o = '<p><label for="'+ id +'">'+ c[id][0] +': '+ (en ? '<span class="form-required">*</span>' : '') +'</label>'; 
  var v = c[id][1]; 
  if (typeof v === 'object') { 
    o += '<select id="'+ id +'">'; 
    for (i in v) o += '<option value="'+ v[i] +'">'+ i +'</option>'; 
    o += '</select>'; 
  }else{ 
    o += '<input type="text" id="'+ id +'" class="form-text" value="'+ (v ? v : 0) +'"'+ (en ? '' : ' disabled') +'>' 
  } 
 
  return o +'</p>'; 
}
<table><td> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
 
<script src="../calc2.js" language="javascript"></script> 
 
<script>var c = {'pirr': ['Стоимость ПИР расчётного периода в тыс. тенге без НДС'],'year': ['Расчётный период ПИР (год)', {'2017 год': 2269, '2016 год': 2121,'2015 год': 1982,'2014 год': 1852, '2013 год': 1731,'2012 год': 1618,'2011 год': 1512,'2010 год': 1413,'2009 год': 1296,'2009 год': 1273,'2008 год': 1168,'2007 год': 1092,'2006 год': 1030,'2005 год': 971,'2004 год': 919,'2003 год': 872,'2002 год': 823,'2001 год': 775,'2000 год': 725,}],'pirp': ['Приведённая ПИР (тыс. тенге)', ],'mrpp': ['МРП приведённая', 1982],'mrpr': ['МРП расчётная'],'ntrd': ['Нормы труда (чел./дней)'],'res1': ['Стоимость экспертизы, без НДС (тенге)'],'ndsp': ['НДС%', 12],'res2': ['Стоимость экспертизы, с НДС (тенге)'],'psod': 23982,'ppir': 3682.08, 
'mres': 54720,'nkff': 1.1431,'npow': 0.39906,'nchd': 30.28,};</script> 
<div id="calc"> 
 
</div> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

Мне нужно чтобы res1,ndsp,res2 результаты не выводились, а вместо него была кнопка узнать результат. После нажатия этой кнопки результаты должны сохраниться где-то чтобы я их использовал для отправки значения в email. Сайт делаю на wordpress.

READ ALSO
Выбрать элемент с выпадающего списка

Выбрать элемент с выпадающего списка

Доброе утроНе могу выбрать элемент из выпадающего списка

424
C# FileCopy отказано в доступе [требует правки]

C# FileCopy отказано в доступе [требует правки]

При использовании FileCopy, выдало отказано в доступеЗапускал VS от администратора, не помогло

402
Реализация аффинного шифра [требует правки]

Реализация аффинного шифра [требует правки]

Необходимо создать консольную программу для реализации афинного шифра (рекуррентный не нужен) Русский алфавит, точка, запитая, пробел

520
Подойдет ли MacBook для .net разработчика? [требует правки]

Подойдет ли MacBook для .net разработчика? [требует правки]

Можно ли писать на c#, используя мак? Ну и в целом, если купить макбук, то можно ли работать с платформойnet? Не могу найти аналога макбука по качеству...

302