使用jQuery创建一个表单条目计算器
Creating a form entry calculator with jQuery
我正在尝试构建一个计算器,使用表单条目作为要计算的数字,并返回到另一个字段集中的相应表单字段。我是jQuery的新手,我正在遵循一本书的建议,但我必须说实话,我确实需要匆忙一点,我遇到了一些问题。
如果你需要将其可视化,下面是jfiddle:http://jsfiddle.net/u3xx4ubv/14/
编辑:不确定对此采取的适当形式的操作,这可能会导致一些问题。
HTML:
<form action="" method="get" id="ATSCalc">
<fieldset>
<legend>Return on Investment Calculator</legend>
<label for="aptsBooked" class="label">Avg. Appointments Booked</label>
<input name="aptsBooked" type="text" id="aptsBooked">
<br />
<label for="aptsAttended" class="label">Avg. Appointments Attended</label>
<input name="aptsAttended" type="text" id="aptsAttended">
<br />
<label for="reqMeetings" class="label">Meetings per deal</label>
<input name="reqMeetings" type="text" id="reqMeetings">
<br />
<label for="orderVal" class="label">Avg. order value</label>
<input name="reqMeetings" type="text" id="reqMeetings">
<br />
<input type="submit" value="Submit" />
</fieldset>
<br />
<fieldset>
<legend>Results</legend>
<label for="convRate" class="label">Appointment conversion rate</label>
<input name="convRate" type="text" id="convRate">
<br />
<label for="meetingsPerDeal" class="label">No. of meetings per deal</label>
<input name="meetingsPerDeal" type="text" id="meetingsPerDeal">
<br />
<label for="meetingVal" class="label">Value of each meeting</label>
<input name="meetingVal" type="text" id="meetingVal">
<br />
</fieldset>
</form>
JavaScript:
$(document).ready(function(){
$('#ATSCalc').submit(function(){
var aptsBooked = $('#aptsBooked').val();
var aptsAttended = $('#aptsAttended').val();
var reqMeetings = $('#reqMeetings').val();
var orderVal = $('#orderVal').val();
//Collects values of form input
var aptsConvRate = aptsAttended / aptsBooked * 100;
$('#convRate').val(aptsCovRate); //Outputs meeting conversion rate to form field.
var meetingsPerDeal = aptsBooked / reqMeetings;
$('#meetingsPerDeal').val(meetingsPerDeal); //Outputs meeting per deal value to form field.
var meetingVal = orderVal / meetingsPerDeal;
$('#meetingVal').val(meetingVal); //Outputs value of each meeting to form field.
//Variables for calculation of Return on Investment figures
}}; // end submit()
}}; // end ready ()
我正在尝试运行第二组变量,并返回第二个字段集中的字段中的输出。我想这只是语法错误或错误的代码,但我真的很难修复。任何帮助都将不胜感激。
Fiddle示例
你错过了
}};
而不是});
作为结束括号- 变量名aptsCovRate而不是
aptsConvRate
(缺少n
)
$(document).ready(function () {
$('#ATSCalc').submit(function (e) {
e.preventDefault();
var aptsBooked = parseInt($('#aptsBooked').val(), 10);
var aptsAttended = parseInt($('#aptsAttended').val(), 10);
var reqMeetings = parseInt($('#reqMeetings').val(), 10);
var orderVal = parseFloat($('#orderVal').val());
//Collects values of form input
var aptsConvRate = aptsAttended / aptsBooked * 100;
$('#convRate').val(aptsConvRate); //Outputs meeting conversion rate to form field.
/* ^^^^ Conv !! not Cov */
var meetingsPerDeal = aptsBooked / reqMeetings;
$('#meetingsPerDeal').val(meetingsPerDeal); //Outputs meeting per deal value to form field.
var meetingVal = orderVal / meetingsPerDeal;
$('#meetingVal').val(meetingVal); //Outputs value of each meeting to form field.
//Variables for calculation of Return on Investment figures
}); // end submit()
}); // end ready ()
此外,在从输入中获取number值时,最好使用带基数参数的 要对结果进行舍入,请查看parseInt()
(值到整数Docs)和parseFloat()
(值到浮点数DocstoFixed()
方法。
您的javascript/HTML有一些错误,还有一些遗漏。
$('#convRate').val(aptsCovRate);
应为$('#convRate').val(aptsCo**n**vRate);
- 结束提交和结束准备应为
});
,而不是}};
- 您没有以
orderVal
作为ID的HTML输入。它需要更改
最后,您错过了什么-您的表单将提交并刷新,您将丢失计算值。您可以使用e.stopPropagation();
和e.preventDefault();
来修复此问题
更新后的小提琴应该为您工作:http://jsfiddle.net/u3xx4ubv/17/
相关文章:
- 后焦点更改为IE 11中的地址栏,而不是转移到表单中的下一个控件
- 使用ajax将数据从一个步骤发送到下一个步骤的3步表单
- jquery mobile上多个页面上的一个表单
- 如何在只能有一个asp.net表单的主页上从asp.net页面中的javascript中获取值
- 如何创建一个“;表单弹出框“;在chrome中右键单击时位于突出显示的单词上方
- 循环遍历包含另一个表单的表单
- jquery从2个json字符串构建一个复选框表单
- 为网站表单创建一个专业的日历
- 如何在javascript转换编码中将一个动态值从一个表单添加到另一个页面
- 我确实有一个表单,如果用户输入了输入,它应该检查否定或空的输入框,并抛出一条警告消息
- 在表单中创建一个黑名单过滤器以避免某些单词
- 从一个iframe到另一个ifame的过帐表单-IE
- 从表单中动态生成一个字符串,传递给通过AJAX加载的PHP文件
- 页面上的2个表单带有JS验证-其中一个抛出电子邮件验证错误
- 需要一个用于AJAX的Javascript库,其中包含多部分/表单数据
- 当阻止Enter键提交AJAX表单时,关注下一个输入是't工作
- 一个具有两个图像按钮的表单在只能按下一个按钮的情况下发送两个按钮值
- 在另一个可观察量完成后触发第二个表单提交单击
- 两个表单 - 一个提交按钮
- 多表单一个ajax函数