Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 自动实时更新的jQuery/Javascript计算器(猜测AJAX)_Php_Javascript_Jquery_Ajax_Forms - Fatal编程技术网

Php 自动实时更新的jQuery/Javascript计算器(猜测AJAX)

Php 自动实时更新的jQuery/Javascript计算器(猜测AJAX),php,javascript,jquery,ajax,forms,Php,Javascript,Jquery,Ajax,Forms,我希望创建一个非常简单的计算器,但我需要它在每次击键时更新。我似乎找不到那一类的东西。谁能给我指一下正确的方向吗 我正在寻找像A*1.325+B*3.76这样的东西,其中B是一个下拉菜单,A是人们将要填写的文本字段。每次更改下拉列表或在文本框中注册击键时 我也会尝试做一些正则表达式,只允许数字或小数点 非常感谢大家 PS.将使用PHP/HTML创建表单。您不需要也不应该使用AJAX。相反,您应该这样做: $("#textfieldID, #dropDownMenuID").change(func

我希望创建一个非常简单的计算器,但我需要它在每次击键时更新。我似乎找不到那一类的东西。谁能给我指一下正确的方向吗

我正在寻找像A*1.325+B*3.76这样的东西,其中B是一个下拉菜单,A是人们将要填写的文本字段。每次更改下拉列表或在文本框中注册击键时

我也会尝试做一些正则表达式,只允许数字或小数点

非常感谢大家


PS.将使用PHP/HTML创建表单。

您不需要也不应该使用AJAX。相反,您应该这样做:

$("#textfieldID, #dropDownMenuID").change(function() {
    var aVal = $("#textFieldID").val() == "" ? 0 : parseFloat($("#textFieldID").val());
    var bVal = $("#dropDownMenuID").val() == "" ? 0 : parseFloat($("#dropDownMenuID").val());
    $("#answerID").text((aVal*1.325 + bVal*3.76).toString());
});

在等待回复的过程中,我做了更多的研究,找到了一些我认为适合我所寻找的代码。我想得太多了

<html>
<head>
</head>
<body>
<script>
function doMath() {
    var totalparts = parseInt(document.getElementById('parts_input').value);
    var labor = parseInt(document.getElementById('labor_input').value);
    var misc = parseInt(document.getElementById('misc_input').value);
    var subtotal = totalparts + labor + misc;
    var tax = subtotal * .13;
    var total = subtotal + tax;

    document.getElementById('subtotal_input').value = subtotal;
    document.getElementById('tax_input').value = tax;
    document.getElementById('total_input').value = total;
}
</script>

<div>Total Parts: <input type="text" id="parts_input" value="1" readonly="true" /></div>
<div>Labor: <input type="text" id="labor_input" onBlur="doMath();" /></div>
<div>Misc: <input type="text" id="misc_input" onBlur="doMath();" /></div>
<div>Sub Total: <input type="text" id="subtotal_input" readonly="true" /></div>
<div>Tax: <input type="text" id="tax_input" readonly="true" /></div>
<div>Total: <input type="text" id="total_input" readonly="true" /></div>
</body>
</html>

函数doMath(){
var totalparts=parseInt(document.getElementById('parts\u input').value);
var-labor=parseInt(document.getElementById('labor\u input').value);
var misc=parseInt(document.getElementById('misc_input').value);
var小计=总零件+人工+杂项;
风险值税=小计*.13;
var总额=小计+税金;
document.getElementById('subtotal\u input')。值=小计;
document.getElementById('tax_input')。value=tax;
document.getElementById('total_input')。value=total;
}
共部分:
劳工:
杂项:
小计:
税款:
总数:

您是否尝试过
onchange=“calculator()”

步骤1:

执行jQuery教程。乐趣:D:D:D

步骤2:

现在您已经了解了jQuery,请注意jQuery支持一系列事件处理程序。例如,您可以将单击事件指定给类似于下拉菜单中项目的内容:

$("itemInMyDropDownMenu").click(function(e) {
    doSomeCalculation(parseFloat(this.val()));
}
步骤3:

选择要使用的正确事件处理程序<代码>单击(用于下拉菜单)并将键向上(用于文本字段)听起来充满希望

步骤4:


继续修补。您根本不需要PHP。

第一个问题。如果您只需要简单的计算器,为什么需要AJAX?AJAX可以向网页和脚本发送请求,并获得XML、JSON、html或简单的文本响应

如果您仍然需要AJAX,请阅读

实时更新: 设置要使用的元素的id。 创建适当的处理程序,该处理程序在字段更改时随时调用

<input type="text" id="field" value="" onChange="javascript: setA(this)"/>

function setA(obj){
  var a = 0 ;
  if (obj.value)
    a = obj.value ;
   //call any function to calculate anything and send a.
}

函数集A(obj){
var a=0;
if(目标值)
a=目标值;
//调用任何函数来计算任何内容并发送一个。
}
如果你想显示一些东西,这里的id很方便

<div id="result"></div>
document.getElementById("result").innerHTML = 345 ; //just set to what you need

document.getElementById(“结果”).innerHTML=345//只需设定你需要的
您可以充分利用javascript构建简单的计算器,而无需提交表单,因为它可以实时工作


希望有帮助:)

你应该问一个更具体的问题。到目前为止你做了什么?你被困在哪里了?不,那不是阿贾克斯。AJAX是指需要从服务器异步获取数据的时候(想想Google Instant)。等式是由用户给出的还是由用户输入的?尝试
onkeypress
onchange
(HTML属性)来触发一个函数。然后我将onBlur改为onKeyUp,将parseInt改为parseFloat,我就可以开始了!谢谢大家!很抱歉在这么简单的时候问了一个愚蠢的问题!