用于div.text的javascript / jquery onChange函数更新表单隐藏字段值

时间:2015-10-23 21:58:04

标签: javascript forms onchange

我的经典ASP购物车页面使用表格中数量选择器的div:

<form action="/update-cart/" method="post">
     <div class="quantity-selector detail-info-entry">
           <div class="detail-info-entry-title">Quantity</div>
                       <div class="entry number-minus">&nbsp;</div>
                       <div class="entry number">1</div>
                       <div class="entry number-plus">&nbsp;</div>
          </div>
     </div>
</form>

当点击 - 或+时,1将按预期更新。执行此操作的代码是:

$('.number-plus').on('click', function(){
    var divUpd = $(this).parent().find('.number'), newVal = parseInt(divUpd.text(), 10)+1;
    divUpd.text(newVal);
});

$('.number-minus').on('click', function(){
    var divUpd = $(this).parent().find('.number'), newVal = parseInt(divUpd.text(), 10)-1;
    if(newVal>=1) divUpd.text(newVal);
});

在提交表单时,使用上面的“数字”类发布div内容的最简单方法是什么。我使用:

<input type="hidden" id="Num" name="Num" value="" />

或者另一种方式。无论哪种方式,如何轻松完成,因为我无法获得变量“newVal”来填充隐藏字段。

由于

3 个答案:

答案 0 :(得分:1)

此演示有两个值得注意的功能。

  1. 以下是使用HTML和内联JS (e.g. onchange='...)完成的
    • <input> s .number-minusnumber-plus
    • <output> .number显示.number-minus.number-plus
    • 的总和
  2. 根据要求,.number-minus.number-plus的总和存储在名为<input [hidden]>的{​​{1}}中。此值是使用jQuery(overkill IMO)从.secret值派生的。 `
  3. &#13;
    &#13;
    <output>
    &#13;
    $(function() {
      $('#pos, #neg').on('change', function(event) {
        var cnt = $('#counter').val();
        $('#secret').val(cnt);
        console.log('Secret: ' + secret.value);
      });
    });
    &#13;
    &#13;
    &#13;

答案 1 :(得分:0)

使用纯JS: document.getElementById(“Num”)。value =&lt;变量名称&gt;

使用jQuery(不是100%肯定) $(“Num”)。value(&lt; variable name&gt;)

答案 2 :(得分:0)

所以我自己解决了这个问题。

我添加了以下行:

$("#Num").val(newVal);

对于+和 - div的jquery函数如下:

 $('.number-plus').on('click', function(){
var divUpd = $(this).parent().find('.number'), newVal = parseInt(divUpd.text(), 10)+1;
divUpd.text(newVal);
$("#Num").val(newVal);
});
 $('.number-minus').on('click', function(){
var divUpd = $(this).parent().find('.number'), newVal = parseInt(divUpd.text(), 10)-1;
if(newVal>=1) divUpd.text(newVal);
$("#Num").val(newVal);

});

我确信我曾经尝试过这个但是在想到之后我可能已经省略了$。总是最简单的事情