【问题标题】:calculating a textbox value计算文本框值
【发布时间】:2016-01-28 06:51:57
【问题描述】:

我正在处理一个要求,我想对 dxtextbox 中输入的数字进行一些计算,

例如,如果我正在输入:

123456789

那么计算会是这样的

num1=1 *3;num2=2 *7;num3=3 ;num4=4 *3;num5=5 *7;num6=6;num7=7 *3;num8=8*7;num9=9;

sum=num1+num2+num3+num4+num5+num6+num7+num8+num9

if(sum != 0 && sum % 10 == 0){it will return true}else it should return false

我在你的文档部分搜索了这个,但没有得到任何东西。

你能帮我解决这个要求吗? 我附上了一个示例解决方案,您可以在其中看到我试图完成此任务的验证结构。 谢谢你

【问题讨论】:

  • 我在您的乘法语句中看不到任何含义或特定顺序..
  • 计算模式的规则是什么?总是9位数?还请显示您尝试过的代码
  • @RayonDabre 也带了我一点,但遵循乘以 3,7,0 ..3,7,0 的模式,但除此之外没有多大意义
  • @charlietfl,对!如果 OP 提供更多信息,看起来会更容易..
  • 阿门……这里严重缺乏细节

标签: javascript jquery devextreme


【解决方案1】:
$(document).ready(function()
{
    var enteredNumber = 123456789;
    var numTotal = 0;
    var multiplikator = Array(3,7,1);
    var multiplikatorCnt = 0;
    for(a=0;a < enteredNumber.toString().length; a++)
    {
        numTotal += parseInt((enteredNumber.toString())[a]) * multiplikator[multiplikatorCnt];
        multiplikatorCnt++;
        if(multiplikatorCnt > 2)
        {
            multiplikatorCnt = 0;
        }
    }
    if(numTotal != 0 && numTotal % 10 == 0)
    {
        return true
    }
    else
    { 
        return false
    }
});

编辑:忘记返回真或假。

【讨论】:

    【解决方案2】:

    更短的应该是:

    $(document).ready(function()
    {
        var enteredNumber = 123456789;
        var numTotal = 0;
        var multiplikator = Array(3,7,1);
        for(a=0;a < enteredNumber.toString().length; a++)
        {
            numTotal += parseInt((enteredNumber.toString())[a]) * multiplikator[a % multiplikator.length];
        }
        if(numTotal != 0 && numTotal % 10 == 0)
        {
            return true
        }
        else
        { 
            return false
        }
    });
    

    【讨论】:

      【解决方案3】:

      感谢您的快速回复,我可以自己解决它

      这是我正在使用的代码

      var valuenum = $("#txt_value").dxTextBox("instance");
          var checknumber = valuenum .option('value');
          var arr = checknumber.split('');
          var num1, num2, num3, num4;
      
          num1 = (arr[0]) * 3;
          num2 = (arr[1]) * 7;
          num3 = (arr[2]);
          num4 = (arr[3]) * 3;
      
      
          var totalval = parseInt(num1) + parseInt(num2) + parseInt(num3) + parseInt(num4) ;
          if (totalval != 0 && totalval % 10 == 0) {
              return true;
          }
      

      【讨论】:

      • 好的。伟大的。只有一条评论:您的解决方案不灵活。如果您的号码超过 4 位,您的解决方案将不起作用。还是您的输入字段限制为 4 位数?
      猜你喜欢
      • 2011-08-13
      • 1970-01-01
      • 2013-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-23
      • 1970-01-01
      相关资源
      最近更新 更多