如何阻止空输入字段影响表单中的计算

时间:2016-01-09 01:48:52

标签: javascript jquery forms

我有一个表单,用于计算一组用户输入值的总和和平均值。用户可以动态添加输入字段,以便他们可以找到所需数量值的总和和平均值。我试图证明它,如果他们碰巧添加一个字段但是留空,那么输入字段将在计算中被忽略。当前留空时,表单返回'NaN,NaN'。我试过这个

$(':input[value=""]').attr('name', ''); 

基于快速搜索,但它没有预期的效果(表单仍然返回'NaN,NaN'。

当用户使用以下jQuery单击按钮时执行计算

$(".calc").click(function() {
   $("input[type=text]").each(function() {
    arr.push($(this).val());
    sum += parseInt($(this).val());       
  });

  var n = arr.length;
  var AVG = (sum / n);
  alert(sum + "," + AVG);
  arr = [];
  sum = 0;
});

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

请尝试以下方法。我也添加了修剪以过滤空白区域。

int timer(int seconds) 
{
    time_t start, end;
    double elapsed;
    int opened = 0; 
    char command[10];
    struct timeval tv;
    int fd_stdin, rv;
    fd_set rd;
    int c = 0;

    fd_stdin = fileno(stdin);

    time(&start);  /* start the timer */

    do
    {
        time(&end);

        elapsed = difftime(end, start);

        if (fmod(elapsed, 5) == 0)
        {
            printf("Time remaining: %f minutes.\n", (seconds-elapsed)/60);
            sleep(1);
            if (opened == 0)
            {
                printf("Use opentest to open your test.\n");
                opened = 1;
            }
            fflush(stdout);
        }

        FD_ZERO(&rd);
        FD_SET(fd_stdin, &rd);

        tv.tv_sec = 5;
        tv.tv_usec = 0;

        rv = select(fd_stdin+1, &rd, NULL, NULL, &tv);
        if (rv == -1)
        {
            perror("Error on select.\n");
            exit(1);
        }
        else if (rv == 0)
        {
            if (c != 1)
            {
                printf("timeout.\n");
                c = 1;
            }
        }
        else 
        {
            c = 0;
            read(fd_stdin, command, 10);
        }
    }
    while (elapsed < seconds);
    return 0;
}