使用单击时增加表单值的值

时间:2015-07-28 08:07:07

标签: jquery

我正在尝试增加输入字段的值,使用jquery onClick

 <input type="hidden" name="endFrom" value="17">
 $('.ajaxRequest').click(function (e) {
     e.preventDefault();  
     var endFrom = parseInt($('Form input[name="endFrom"]').val(), 10) + 8;     
 });

上述值没有增加endFrom。它只返回了数字17

我也试过以下但是刚刚返回178

var endFrom =  $('Form input[name="endFrom"]').val()+ 8 ;

5 个答案:

答案 0 :(得分:1)

您可以在 val(func) 中使用回调函数,在您的情况下,它不会更新它只是获取该输入标记的值

$('.ajaxRequest').click(function(e) {
  e.preventDefault();
  $('Form input[name="endFrom"]').val(function(i, v) {
    return parseInt(v, 10) + 1;
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<form>
  <input type="hidden" name="endFrom" value="17">
  <input type="hidden" name="startFrom" value="17">
  <button class="ajaxRequest">Button</button>
</form>

答案 1 :(得分:0)

您需要将值分配回输入字段

$('.ajaxRequest').click(function(e) {
  e.preventDefault();
  var endFrom = parseInt($('Form input[name="startFrom"]').val(), 10) + 8;

  //assign the value back to the input
  $('Form input[name="endFrom"]').val(endFrom)
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<form>
  <input type="hidden" name="startFrom" value="7" />
  <input type="hidden" name="endFrom" value="17" />
  <button class="ajaxRequest">S</button>
</form>

答案 2 :(得分:0)

在您提供的HTML中,name属性为endForm,但在您的选择器中为startForm $('Form input[name="startFrom"]') - 同样,请使用小写字母键入form

您只需将计算值保存在var中,但之后不会在输入中应用该var的值:

$('.ajaxRequest').click(function (event) {
  event.preventDefault();  
  var endFrom = parseInt($('form input[name="startFrom"]').val(), 10) + 8;
  $('form input[name="endFrom"]').val(endFrom);
});

答案 3 :(得分:0)

第1步 - 阅读startFrom值。

$('Form input[name="startFrom"]').val()

第2步 - 将其转换为INT。

parseInt($('Form input[name="startFrom"]').val())

步骤3 - 将8加到数字上。

parseInt($('Form input[name="startFrom"]').val()) + 8

步骤4 - 将endForm值设置为步骤3的结果。

$('Form input[name="endFrom"]').val(parseInt($('Form input[name="startFrom"]').val()) + 8)

答案 4 :(得分:0)

在您的实际代码中,如果您执行以下操作,则只需连接两个字符串:

var endFrom =  $('Form input[name="endFrom"]').val()+ 8 ;

您应该将其解析为数字然后递增它:

var endFrom =  parseInt($('Form input[name="endFrom"]').val(), 10)+ 8 ;

它会返回25而不是178

&#13;
&#13;
$('.ajaxRequest').click(function(e) {

  e.preventDefault();
  
  var endFrom = parseInt($('input[name="endFrom"]').val(), 10) + 8;
  alert(endFrom);

});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="button" value="Increment" class="ajaxRequest" />

<input type="hidden" name="endFrom" value="17">
&#13;
&#13;
&#13;

编辑:

要使用每个增量更改输入值,只需更改此项:

var endFrom = parseInt($('input[name="endFrom"]').val(), 10) + 8;

以下内容:

$('input[name="endFrom"]').val(parseInt($('input[name="endFrom"]').val(), 10) + 8);