繁体   English   中英

如何使用JavaScript在输入框中显示总计

[英]How to display total in input box using javascript

我试图弄清楚如何将总数加载到输入框中而不是跨度。 类似的问题表明

document.getElementById("number").value = xmlhttp.responseText;

作为答案,但我做的不对。 可能需要一点帮助来确定应该去哪里。

下面的脚本效果很好,我只需要在输入框中输入总数即可。

    <script type="text/javascript"><!--

var isOldSafari=(navigator.userAgent.search(/Safari\/(85|1\d\d)\D/i)!=-1);

function dss_addEvent(el,etype,fn) {
  var tN = el.tagName?el.tagName.toLowerCase():'';
  if(el.addEventListener && (!window.opera || opera.version) &&
  (etype!='load') &&(!isOldSafari || ((tN!='input') && (tN!='textarea')))) {
    el.addEventListener(etype,fn,false);
  } else if(el.attachEvent) {
    el.attachEvent('on'+etype,fn);
  } else {
    var tempFunc;
    if(typeof el['on'+etype] == "function") tempFunc=el['on'+etype];
    el['on'+etype] = function() {
      if(typeof tempFunc == "function") tempFunc();
      if(typeof fn == "function") fn();
    }
  }
}

if(typeof(Number)!='undefined'&&typeof(Number.prototype)!='undefined'){
  if(typeof(Number.prototype.toFixed)=='undefined'){
  // for IE versions older than 5.5 and Netscape 4.x
  // for this script it's only used in IE5.x, though because of the DOM1
  // support requirement
    Number.prototype.toFixed=function(d){
      var n=this;
      d=(d||((d==0)&&(typeof(d)=='number')))?d:2;
      var f=Math.pow(10,d);
      n=((Math.round(n*f)/f)+Math.pow(10,-(d+1)))+'';
      return n.substring(0,(d==0)?n.indexOf('.'):n.indexOf('.')+d+1);
    }
  }
}

var checkboxItemValue = {
  'cb1':'50.00',
  'cb2':'45.00',
  'cb3':'25.00'
};

function updateTotal() {
  if(!document.getElementsByTagName) return;
  var cbs = document.getElementById('cbGroup1').getElementsByTagName('input');
  var total = 400,num;
  for(var i=0;i<cbs.length;i++) {
    if(cbs[i].checked) {
      num=parseFloat(checkboxItemValue[cbs[i].id]);
      if(!isNaN(num)) total += num;
    }
  }
  var b   = document.getElementById('cbGroup1Total');
  b.value = 'Total: $ '+total.toFixed(2);
}


function addEventsToCBGroup1() {
  if(!document.getElementsByTagName || !document.createTextNode) return;
  var cbs = document.getElementById('cbGroup1').getElementsByTagName('input');
  for(var i=0;i<cbs.length;i++) {
    dss_addEvent(cbs[i],'click',updateTotal);
  }
}



dss_addEvent(window,'load',addEventsToCBGroup1);
dss_addEvent(window,'load',updateTotal);
// -->
</script>

然后我的HTML

<form name="form1" action="#"
onsubmit="return false;"><fieldset><legend>Options:</legend>
<ul class="checkboxes" id="cbGroup1">
  <li><input type="checkbox" name="cb1" id="cb1">
    <label for="cb1">Fishing Package $50.00</label></li>
  <li><input type="checkbox" name="cb2" id="cb2">
    <label for="cb2">Snorkel Package $45.00</label></li>
  <li><input type="checkbox" name="cb3" id="cb3">
    <label for="cb3">Ski Package $25.00</label></li>

</ul>
<input id="cbGroup1Total" />

</fieldset></form>

将跨度更改为输入

<input id="cbGroup1Total" />

和JavaScript匹配

function updateTotal() {
  if(!document.getElementsByTagName) return;
  var cbs = document.getElementById('cbGroup1').getElementsByTagName('input');
  var total = 400,num;
  for(var i=0;i<cbs.length;i++) {
    if(cbs[i].checked) {
      num=parseFloat(checkboxItemValue[cbs[i].id]);
      if(!isNaN(num)) total += num;
    }
  }
  var b   = document.getElementById('cbGroup1Total');
  b.value = 'Total: $ '+total.toFixed(2);
}

Total: $文本保留在您的span ,然后将实际的美元金额放入input type=text

HTML:

<span>Total: $</span><input type="text" id="cbGroup1Total" value=''/>

使用Javascript:

function updateTotal() {
    ...
    ...
    var txtTotal = document.getElementById('cbGroup1Total');
    txtTotal.value = total.toFixed(2);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM