Jquery 将1添加到输入字段

Jquery 将1添加到输入字段,jquery,Jquery,我不明白为什么这行不通。我想让一个简单的计数器工作。当用户单击“是”时,我希望将隐藏文本框的值增加1。当前,当我单击“是”时,文本框的值更改为“102”,附加的文本显示为“101102”。有什么想法吗 以下是我正在使用的代码: var yesValue = parseInt($("#trend-one-yes").val()); $("#trend-one-yes").val(yesValue+1); var $addDiv = $('#yes');

我不明白为什么这行不通。我想让一个简单的计数器工作。当用户单击“是”时,我希望将隐藏文本框的值增加1。当前,当我单击“是”时,文本框的值更改为“102”,附加的文本显示为“101102”。有什么想法吗

以下是我正在使用的代码:

var yesValue  = parseInt($("#trend-one-yes").val());
$("#trend-one-yes").val(yesValue+1);

var $addDiv = $('#yes');
$addDiv.append($("#trend-one-yes").val());

更新 我添加了一些建议的代码。它仍然输出错误的号码。它应该增加1,而不是增加2。谢谢你的帮助

<div id="vote" class="animated" data-fx="slideInDown">   
  <div class="vote-w">
  <div class="vbut" id="yes"><div>&#xe0fe;</div><div class="tag">Yes</div></div>
  <div class="vbut" id="no"><div>&#xe0fd;</div><div class="tag">No</div></div>
</div>
                    
<div  id="results">
  <div class="res" id="yesNum"></div>
  <div class="res" id="noNum"></div>                    
  <form id="vals" method="post" action="data/save.php" target="sub">
    <input id="trend-one-yes" name="trend-one-yes" 
           value="<?php echo $survey->one->yes?>"/>
    <input id="trend-one-no" name="trend-one-no" 
           value="<?php echo $survey->one->no?>"/>                    
  </form>
  <iframe id="sub" frameborder="0" name="sub" 
          style="height:1px; width:1px;"></iframe>
</div>                     

;对
;不

您不是用新值更新
#yes
元素,而是将新值附加到现有值。使用.html()将现有值替换为新值

var $tyes = $("#trend-one-yes");
var count = parseInt($tyes.val(), 10) + 1
$tyes.val(count);

var $addDiv = $('#yes').text(count);

您需要替换节点值而不是追加

$addDiv.html($("#trend-one-yes").val());
问题概述

  • 如果表单字段的值为101,单击元素后如何将其增加1
  • 为什么我的代码将值设置为
    101102
    ,而不是将值更改为
    102
  • 为什么我更新的代码将值增加了2而不是1
  • 问题1您必须确保您获得的值属于
    number
    如果查看,可以看到val返回字符串、数字或数组。所以你必须确保你把它变成一个数字。 要获取单击次数,可以使用parseint

    问题3的更新3 为了能够提供帮助,我需要更多的信息。我相信你想要这个:


    • yesCount的初始值是101,来源于
      显示html结构初始值是多少?试试$addDiv.html(…);你能分享更多的代码吗?我们可以帮助你吗?你有没有想过用我的代码笔例子来说明你的意思?您是否可以更新不起作用的描述和示例:预期:单击
      时,趋势是的计数器应增加1。问题:点击。。。复制步骤:……是的,这是$(“#是”)的唯一实例。还是加两。我添加了一个完全不同的新按钮,仍然不起作用。Thx@user2750623:我不是指唯一的例子。我说的是有多少个
      id=yes
      甚至可能是
      id=vote
      谢谢你的帮助。结果发现它与我使用的fullPage.js插件有冲突。没有它,一切都很好。再次感谢你的帮助!你介意投票吗?或者,如果你不能这样做,请接受我的回答,因为它涉及到你文章中的一些问题?您是如何发现它是fullPage.js插件的?您是否查看了事件侦听器?
      $addDiv.html($("#trend-one-yes").val());
      
      // get the value from <input id=trend-one-yes type=??? <-- i assume type=text?
      var yesCount = parseint($("#trend-one-yes").val(), 10); 
      // increase value by 1 and write it back into the field
      yesCount = yesCount  +1;
      $("#trend-one-yes").val(yesCount);
      
      var $addDiv = $('#yes'); // get a reference to <div id=yes>
      // append is the wrong function --> $addDiv.append($("#trend-one-yes").val());
      
      // the newYesCount will be increased by one after a certain user action
      var newYesCount = GetNewYesCount(yesCount);
      $addDiv.val(newYesCount);
      
      $("#yes").mouseup(function()
      {
         // i assume get yes count from <input id="trend-one-yes
         var yesCount = GetCurrentYesCount();
         // increase yesCount by 1 after a certain user action
         var newYesCount = GetNewYesCount(yesCount);
         // write newYesCount into another form field
         // i assume <div class="res" id="yesNum">
      });