首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >基于表单答案的Javascript计算

基于表单答案的Javascript计算
EN

Stack Overflow用户
提问于 2016-04-18 12:29:59
回答 1查看 76关注 0票数 3

我已经创建了一个网页表单,有几个输入以及单选按钮。每个问题的答案都需要收集起来,以计算成本。我不确定我的JS逻辑(特别是与单选按钮相关的)是否正确。请有人看看这个,看看我做得对不对?谢谢

HTML:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class="row">
    <div class="form-group col-md-4">
        <label for="company">Company Name*</label><br />
        <input type="text" class="form-control" name="company" placeholder="Company Name" ng-model="user.company">

    </div>
    <div class="form-group col-md-4">
        <label for="salesp">Salesperson Name*</label><br />
        <input type="text" class="form-control" name="salesp" placeholder="Salesperson Name" ng-model="user.salesp">

    </div>
    <div class="form-group col-md-4">
        <label for="emailsales">Contact Email*</label><br />
        <input type="email" class="form-control" name="emailsales" placeholder="john.doe@example.com" ng-model="user.emailsales">

    </div>
</div>
<div class="row">
    <div class="form-group col-md-4">
        <label for="partnum">Number of Part Being Made(Finished Goods)</label>
        <input type="number" class="form-control" id ="partnum" name="partnum" placeholder="Enter # items" ng-model="user.partnum">

    </div>
    <div class="form-group col-md-4">
        <label>New Files?</label><br />
        <input type="radio" name="files" id="files" value="42" ng-model="user.files"> Yes
        <input type="radio" name="files" id="files" value="0"ng-model="user.files"> No

    </div>
    <div class="form-group col-md-4">
        <label>Rerun Files?</label><br />
        <input type="radio" name="oldfiles" value="15" ng-model="user.oldfiles"> Yes
        <input type="radio" name="oldfiles" value="0" ng-model="user.oldfiles"> No

    </div>
</div>
<div class="row">
    <div class="form-group col-md-4">
        <label for="shortp">Shortest Dimension on Print Part (inches)</label>
        <input type="number" class="form-control" name="shortp" placeholder="Shortest Dim" ng-model="user.shortp">

    </div>
    <div class="form-group col-md-4">
        <label for="longp">Longest Dimension on Print Page (inches)</label>
        <input type="number" class="form-control" name="longp" placeholder="Longest Dim" ng-model="user.longp">

    </div>
    <div class="form-group col-md-4">
        <label for="pressnum">Number of Ups on Press Sheet</label>
        <input type="number" class="form-control" name="pressnum" placeholder="# Ups" ng-model="user.pressnum">

    </div>
</div>
<div class="row">
    <div class="form-group col-md-4">
        <label for="shortpress">Number of Short Press Sheet</label>
        <input type="number" class="form-control" id="shortpress" name="shortpress" placeholder="# Short Press" ng-model="user.shortpress">

    </div>
    <div class="form-group col-md-4">
        <label for="longpress">Number of Long Press Sheet</label>
        <input type="number" class="form-control" id="longpress" name="longpress" placeholder="# Long Press" ng-model="user.longpress">

    </div>
    <div class="form-group col-md-4">
        <label>Passes First Side?</label><br />
        <input type="radio" name="passfirst" value="Yes" ng-model="user.passfirst"> Yes
        <input type="radio" name="passfirst" value="No" ng-model="user.passfirst"> No

    </div>
</div>
<div class="row">
    <div class="form-group col-md-4">
        <label for="inkcoverone">Percent of Ink Coverage on First Side</label>
        <input type="number" class="form-control" id="inkcoverone" name="inkcoverone" placeholder="% Ink Coverage" ng-model="user.inkcoverone">

    </div>
    <div class="form-group col-md-4">
        <label>Passes Second Side?</label><br />
        <input type="radio" name="passsecond" value="1" ng-model="user.passsecond"> Yes
        <input type="radio" name="passsecond" value="0" ng-model="user.passsecond"> No

    </div>
    <div class="form-group col-md-4">
        <label for="inkcovertwo">Percent of Ink Coverage on Second Side</label>
        <input type="number" class="form-control" name="inkcovertwo" placeholder="% Ink Coverage" ng-model="user.inkcovertwo">

    </div>
</div>
<div class="row">
                <div class="form-group col-md-offset-10">
                    <button type="submit" class="btn btn-default btn-block register" ng-click="quoteGenerator()"> GET QUOTE </button>
                </div>
</div>

这是JS:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function quoteGenerator(){
    let count = parseInt(document.getElementById('partnum').value);
    if (count > 0) {
        let size = 0;
        for (var i = 0 ; i < document.getElementsByName('files').length; i++) {
            if (document.getElementsByName('files')[i].checked) {
                    size = parseInt( document.getElementsByName('files')[i].value);
                    break;
            }
            if(size == 42){
                let newcount = count * size;
            } else if(size==0){
                for (var i = 0 ; i < document.getElementsByName('oldfiles').length; i++) {
                    if (document.getElementsByName('oldfiles')[i].checked) {
                        newsize = parseInt( document.getElementsByName('oldfiles')[i].value);
                        break;
                    }
                }
                let newcount= count*newsize;
            }
        }       
    }
    var ink = parseInt(document.getElementById('inkcoverone').value);
    var shortp = parseInt(document.getElementById('shortpress').value);
    var longp = parseInt(document.getElementById('longpress').value);
    var parentsheet = parseInt(document.getElementById('psheetnum').value);
    let inkcost1 = ((longp+shortp)/144)*.19*ink*parentsheet;

    for (var i = 0 ; i < document.getElementsByName('passsecond').length; i++) {
            if (document.getElementsByName('passsecond')[i].checked) {
                    pass2 = parseInt( document.getElementsByName('passsecond')[i].value);
                    break;
            }
    }
    var ink2 = parseInt(document.getElementById('inkcovertwo').value);
    let inkcost2 = ((longp+shortp)/144)*.19*ink2*parentsheet*pass2;

}

这些方程都是基于HTML表单中变量的id。方程都是正确的,我只是不确定totalCost的各个组件的位置是否放在正确的位置,我也不确定这个计算的逻辑。单选按钮给我带来了一些问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-18 13:19:54

我建议您查看一下ng-model,了解如何使用表单字段。

这里是我不久前编写的一个演示应用程序,它应该让您了解如何根据表单输入进行计算。

您的quoteGenerator是一个包含任何角码的js函数.将$scope注入函数或使用controllerAs,创建一个控制器并删除所有document.getElementsById调用。

这里是您的代码,如果我已经开始改进您的代码,但是我已经停止了演示,因为我不明白如何使用这些文件进行计算。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36703719

复制
相关文章
JavaScript 表单
以下实例代码用于判断表单字段(fname)值是否存在, 如果不存在,就弹出信息,阻止表单提交:
陈不成i
2021/07/19
8120
JavaScript表单基础
我们应该知道JavaScript设计的的初衷很大程度上是为了处理表单验证,因为在那个远古时代表单验证是通过后台来验证的,网速都比较慢,我们向后台发送数据都需要很长时间才能接收返回数据,动则几分钟少则几十秒,用户体验极其不佳。JavaScript在设计在网页校验,直接就能告诉用户结果,它还增加了很多表单控件的默认行为,这直接让这门语言火了起来。
大熊G
2022/11/14
1.1K0
JavaScript表单提交
表单提交在前端编程阶段中也是一个重点。它是由页面数据保存到后台数据库的重要枢纽,通过表单提交的方式将数据上传到数据库进行保存。同时这些数据也包含用户信息、统计信息、日志信息等等。 数据的信息不同,上传的方式也不同。在JavaScript中有四种种表单提交的方式: 一、 Form表单手动提交(get与post) 在没有任何Js代码的影响下,Form表单本身是自带提交功能的。在form元素标签上有两个属性: (1) action:设置表单提交的路径(URL) (2) method:设置表单提交的方式 表单提交的路径分为两种: (1) 相对路径:指站点内的文件,就是本地文件。 (2) 绝对路径:指其它站点,就比如从本站点到百度。 设置表单提交方式属性的值有两种:get提交和post提交。如果method不指名提交方式则默认为get提交。 这两种提交方式需要分别对应不同情况使用: (1) 相对于post提交而言,get提交更简单也更快,但是传输的容量小,在提交表单时,所有的信息都会暴露在url上,并不安全,通常用来获取数据。 (2) post提交方式能够传输的容量基本上是无穷的,而且提交的数据直接在后台进行处理,保证了数据的安全性,而且在更新数据传输大量数据、传输音频图片或者特殊符号等情况时,就只能使用post,而非get。 通常情况下,我们会取消Form表单的自动提交功能,通过一个onsubmit属性赋值为return false。
全栈程序员站长
2022/11/08
5K0
JavaScript表单提交
JavaScript 表单验证
JavaScript 可用来在数据被送往服务器前对 HTML 表单中的这些输入数据进行验证。
陈不成i
2021/07/19
3.1K0
JavaScript 表单处理
为了分担服务器处理表单的压力,JavaScript提供了一些解决方案,从而大大打破了处处依赖服务器的局面。 一.表单介绍 在HTML中,表单是由<form>元素来表示的,而在JavaScript中,表单对应的则是HTMLFormElement类型。HTMLFormElement继承了HTMLElement,因此它拥有HTML元素具有的默认属性,并且还独有自己的属性和方法: HTMLFormElement属性和方法 属性或方法 说明 acceptCharset 服务器能够处理
汤高
2018/01/11
4.8K0
JavaScript 的表单或邮箱验证
JavaScript 可用来在数据被送往服务器前对 HTML 表单中的这些输入数据进行验证。 被 JavaScript 验证的这些典型的表单数据有: 用户是否已填写表单中的必填项目? 用户输入的邮件地址是否合法? 用户是否已输入合法的日期? 用户是否在数据域 (numeric field) 中输入了文本?
用户1503405
2021/10/08
1.8K0
JavaScript表单约束验证
我们在采集用户输入内容的时候肯定是需要判断用户输入的内容是否为我们需要的内容,js中有很多Api可以辅助我们来约束用户输入正确内容。
大熊G
2022/11/14
7450
JavaScript表单约束验证
javascript表单之间的数据传递
  今天有朋友问我关于用javascript来进行页面各表单之间的数据传递的问题,我以前也写过,不过从来没有注意,今天总结了一下,希望能够给大家一些帮助,也帮助我总结以前学过,用过的知识。
Java架构师必看
2021/03/22
8780
浅析JavaScript的用户登录表单——焦点事件
大家好,我是前端进阶者。在Web项目开发中,经常会在表单验证功能看到焦点事件。例如,文本框获取焦点改变文本框的颜色,文本框失去焦点检验输入的文本框的内容是否正确等。接下来,小编带大家一起来实现一个用户登录的表单!
前端进阶者
2021/03/19
1.9K0
浅析JavaScript的用户登录表单——焦点事件
javascript表单提交的内容显示在表格中
实现三个文本域的内容提交之后显示在表格中,代码直接用文本文件运行,记得后缀改为.html 运行结果
别团等shy哥发育
2023/02/27
7.5K0
javascript表单提交的内容显示在表格中
基于vue 表单验证插件Vaild的开发
给对应的input增加对应的data-vaild正则验证属性,data-errmsg增加对应的错误提示信息内容
李维亮
2021/07/08
1.9K0
javascript当中表单提交(空格提交的问题)
4.表单提交(空格提交的问题) 例 4.1(form.submitIEFF.html) <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <script language=javascript> function check() { var form = document.getElementById("regForm"); if (form.user.value == "") { alert("用户名不能为空!"); } else { form.submit(); } } </script> <form method=post id="regForm" action="jsp1.jsp"> 用户<input type="text" name="user"/><br> <INPUT TYPE="button" onclick="check();" id="regBut" value="提交"/> </form> 以上例子很好,但有个问题,当光标放在文本框里时,即使空格,回车也会提交。不信你试试,浏览器(IE和火狐)都这样。下面给出解决办法。 例 4.1_a <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <script language=javascript> function check() { var form = document.getElementById("regForm"); if (form.user.value == "") { alert("用户名不能为空!"); } else { form.submit(); } } </script> <form method=post id="regForm" action="jsp1.jsp"> 用户<input type="text" name="user" onkeydown="if(event.keyCode==13) return false;"/><br> <INPUT TYPE="button" onclick="check();" id="regBut" value="提交"/> </form> 或者用下面的例子,里面用了onSubmit,只要提交,它就会被执行。
马克java社区
2019/10/17
1.4K0
javascript当中表单提交(空格提交的问题)
burp暴力破解基于Token的表单
我们发现多了一个字段token=679625cb843f4ba37e630426334,抱着试一试的心态,我们按照原来的方式破解。
逍遥子大表哥
2021/12/17
1.3K0
burp暴力破解基于Token的表单
javascript计算对象的长度
计算对象的长度,即获取对象属性的个数 方法一:通过for in 遍历对象,并通过hasOwnProperty判断是否是对象自身可枚举的属性 var obj = {"c1":1,"c2":2}; function countProperties(obj){ for(var property in obj){ if(Object.prototype.hasOwnProperty.call(obj,property){ count++; })
用户1214487
2018/01/24
1.5K0
【工具】15个非常实用的 JavaScript 表单验证库
客户端验证在任何项目都是不可缺少的,很多时候我们需要在用户提交到服务器之前给予提示。表单验证库允许开发人员自定义样式、错误消息和样式以及简化验证规则的创建。
pingan8787
2020/09/14
6.2K0
【工具】15个非常实用的 JavaScript 表单验证库
动态表单的设计与实现(基于Vue ElementUI)
在xxx信息管理这种业务场景中我认为最常见的操作就是对字段的处理(例如查询、编辑等区域的表单、图表的列名、表格的列名),而字段恰恰是最为 '规范的',它有自己的名称、类型
用户7741497
2022/03/22
3.4K0
文档驱动 —— 表单组件(六):基于AntDV的Form表单的封装,目标还是不写代码
https://github.com/naturefwvue/nf-vue3-ant
用户1174620
2020/09/26
1.2K0
考试试题计算选择题的答案
计算选择题答案 //自动得出单选和多选的答案 public static Double examinee(String answer,String myAnswer,Double score) { Double newScore = 0d; //单选 //如果我的答案长度等于1 if(myAnswer.length() == 1){ //我的答案和题中答案相同myAnswer.equals(answer) if(StringUtills.equals(myAnswer,answ
微醺
2019/12/03
4650
javascript实现表单提交加密「建议收藏」
但有时候我们会出于安全角度考虑,给用户输入的密码进行加密,方法一就没办法解决这个问题,这时候我们同常会选择另一种方法,使用javaScript来进行表单提交,代码入下:
全栈程序员站长
2022/11/08
1.5K0
【Java 进阶篇】JavaScript 表单验证详解
JavaScript 表单验证是网页开发中不可或缺的一部分。它允许您确保用户在提交表单数据之前输入了有效的信息。无论您是一个初学者还是一个有经验的开发人员,本文将为您详细介绍如何使用 JavaScript 来进行表单验证。我们将从基础知识开始,逐步深入,以确保您全面了解这个主题。
繁依Fanyi
2023/10/22
3300
【Java 进阶篇】JavaScript 表单验证详解

相似问题

无答案的Javascript表单计算器

20

基于表单输入的实时Javascript计算

33

基于先前答案的自动选择下拉选项- Javascript HTML表单

12

计算Javascript游戏的错误答案

21

基于用户答案的PHP表单问题填充

24
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文