首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单独数字字段的总和不应大于100%

单独数字字段的总和不应大于100%
EN

Stack Overflow用户
提问于 2017-07-10 14:10:08
回答 2查看 150关注 0票数 0

我正在做一个项目,其中有几个调查。其中一个包含一些问题,用户必须输入数字输入作为他们的回答,如果按下提交按钮时回答的总和超过100%,他们将收到该问题的错误消息。(该调查在一个网页中包含多个问题。)

我正在分享这样一个问题的HTML回复,它确实有数字输入字段

代码语言:javascript
复制
<div class="input_row cell_wrapper row col s12" question-input-
    template="number" question-input-id="qid:258 group_id:1 input_value:1">
                <div class="input-field col s12">
                    <input name="qid:258 group_id:1 input_value:1" type="number" 
                    class="validate">
                </div>  
    </div>

    <div class="input_row cell_wrapper row col s12" question-input-
    template="number" question-input-id="qid:258 group_id:1 input_value:2">
                <div class="input-field col s12">
                    <input name="qid:258 group_id:1 input_value:2" type="number" 
                    class="validate">
                </div>  
    </div>

    <div class="input_row cell_wrapper row col s12" question-input-
    template="number" question-input-id="qid:258 group_id:1 input_value:3">
                <div class="input-field col s12">
                    <input name="qid:258 group_id:1 input_value:3" type="number" 
                    class="validate">
                </div>      
    </div>

我正在尝试使用jQuery验证以上文本输入字段的总和是否为100% (不超过100%)。请注意,这些字段不是特定表单的一部分。我所研究和参考的几乎都是基于表单的,例如StackExchangeStackOverflow

有什么想法吗?

它会起作用吗?

代码语言:javascript
复制
var sumOfValues = 0;
$(".validate").each(function(){

    sumOfValues += $(this).val();
});
if(sumOfValues == 100)
{
    //alert message
}
else
{
    //alert message
}
EN

回答 2

Stack Overflow用户

发布于 2017-07-10 14:47:36

您需要将该值转换为数字。否则,您是在连接字符串,而不是添加数字。

代码语言:javascript
复制
sumOfValues += parseInt($(this).val(), 10);
票数 0
EN

Stack Overflow用户

发布于 2017-07-10 15:01:12

使用这个jquery脚本。

代码语言:javascript
复制
$(document).ready(function(){
    var dist = 100;
    var numTotal = 0;
    $("input[type='number']").change(function(){
        var numTotal = 0;
        $("input[type='number']").each(function(){
            var textVal = $(this).val()
            if ($.trim(textVal) != "") {
                numTotal = parseFloat(textVal) + parseFloat(numTotal);
            }
        });
        if (parseFloat(numTotal) > parseInt(dist)) {
            alert("Total not exceed by 100.");return false;
        }
    })
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45004832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档