获得复选框的价值

时间:2019-01-17 04:48:12

标签: jquery

我已经在Page1.html中使用jquery进行了一些计算,方法是使用get函数从输入框获取值,并使用set函数在输入框中设置值。如果也选中全部复选框,我还想获取复选框的总价值,但是我只想获取一个复选框的价值。我还希望将复选框的总价值传递给inputbox13中的page2.html。请帮我。

onNameKeyUp(event: any) {
  this.spelling = event.target.value;
  // the rest of your function as before
}

3 个答案:

答案 0 :(得分:0)

为复选框输入其他名称并获取值。如果使用相同的名称,则其行为类似于单选按钮,这就是为什么它仅返回一个值的原因。

<input type="checkbox" name="car1" value="10000" >INVESTMENT ONE
<input type="checkbox" name="car2" value="20000" >INVESTMENT TWO
<input type="checkbox" name="car3" value="30000" >INVESTMENT THREE

对于JS

$("input[name='car1']:checked").val();
$("input[name='car2']:checked").val();  
$("input[name='car3']:checked").val();

答案 1 :(得分:0)

您可以执行此操作,并使用click事件获取复选框的值:

HTML

<input type="checkbox" name="car1" value="10000" >INVESTMENT ONE

<input type="checkbox" name="car1" value="20000" >INVESTMENT TWO

<input type="checkbox" name="car1" value="30000" >INVESTMENT THREE

jQuery

$("input[name='car1']").click(function (e) {
        if ($(this).is(':checked')) {
            alert($(this).val());
        }
});

这是我的jsfiddle

https://jsfiddle.net/kb59s0ph/1/

或者您可以做一个循环:

$("input[name='car1']").click(function (e) {

        $('input[name=car1]:checked').each(function () {

                alert($(this).val());

        });

});

https://jsfiddle.net/en9x3sdm/

或这样的循环:

$("input[name='car1']").click(function (e) {

        $('input[name=car1]').each(function () {

                alert($(this).filter(':checked').val());

        });

});

https://jsfiddle.net/fuxd7cpk/

答案 2 :(得分:0)

对于您正在执行的操作,您希望迭代每个复选框,并合并每个被选中的值。为此,最好使用public static int findMin(List<Integer> distance, int points) { AtomicInteger c = new AtomicInteger(1); while (distance.stream().mapToInt(d -> d / c.get()).sum() > points) c.incrementAndGet(); return c.get(); } 。我建议创建一个Int变量,然后在找到选中的元素时,用新值增加变量。然后,在循环之后,您便得到了一个总和。

请考虑以下改进。

.each()
$(function() {
  function formatNum(n) {
    return n.toLocaleString("en");
  }

  function calcNetTotal() {
    var tax = 0,
      tax1, tax2, stdDed = 10000;

    var inc = parseInt($("#txt-income").val());
    $("#txt-income").val(formatNum(inc));
    $("#txt-ded").val(formatNum(stdDed));

    tax1 = inc - stdDed;

    $("#txt-gross-inc").val(formatNum(tax1));

    switch (true) {
      case (tax1 > 250000 && tax1 <= 500000):
        tax = (tax1 - 250000) * 5 / 100;
        break;
      case (tax1 > 500000 && tax1 <= 1000000):
        tax = 12000 + ((tax1 - 500000) * 20 / 100);
        break;
      case (tax1 > 1000000):
        tax = 112000 + ((tax1 - 1000000) * 30 / 100);
        break;
    }

    $("#txt-tax").val(formatNum(tax));

    tax2 = tax1 - tax;

    $("#txt-net-income-1").val(formatNum(tax2));
    $("#txt-net-income-2").val(tax2);
  }

  function calcTotalIncome() {
    if ($("#slct-fee").val() == 0) {
      alert("You must select a Fee.");
      $("#slct-fee").focus();
      return false;
    }
    var tax4, tax5, tax6;

    var ni = parseInt($("#txt-net-income-2").val());
    var fee = parseInt($(".fee").val());

    var rd = parseInt($("input[name='gender']:checked").val());

    var ck = 0;
    $("input[name^='car']").each(function(i, el) {
      if ($(el).is(":checked")) {
        ck = ck + parseInt($(el).val());
      }
    });
    var tax4 = parseInt($("#txt-ag-income").val()) || 0;
    var tax5 = parseInt($("#txt-other-income").val()) || 0;

    tax6 = fee + rd + ck + ni + tax4 + tax5;

    $("#txt-total-income").val(formatNum(tax6));

    $("#click3").prop("disabled", false).click(function() {
      window.location.href = "getset-index2.html?tax7=" + tax6 + "&tax8=" + ni + "&tax9=" + fee + "&tax10=" + rd;
    });
  }

  $("#calc-net-income").click(calcNetTotal);
  $("#txt-income").change(calcNetTotal);

  $("#calc-total-income").click(calcTotalIncome);
  $("#txt-net-income-2").change(calcTotalIncome);
});
ul {
  padding: 7px;
  margin: 3px 0;
  list-style: none;
  border: 1px solid #ccc;
  border-radius: 6px;
}

ul li {
  padding: 0;
  margin: 2px;
}

ul li label {
  display: inline-block;
  width: 120px;
  font-size: 85%;
  color: #999;
}

ul li label em {
  color: red;
  font-style: normal;
}

希望有帮助。