【问题标题】:Get the previous value of textbox获取文本框的上一个值
【发布时间】:2015-04-20 07:04:04
【问题描述】:

我有一个 codeigniter 购物车数量的文本框。

<input type="text" id="txt-box_one<?php echo $items['id']; ?><?php echo $items['rowid'] ?>" value="<?php echo $items['qty']; ?> " class="small-txtbox">

我为文本框div写了一个ajax函数onmouseleave

如果用户首先输入文本框值4,然后将其更改为0,则意味着我想再次将文本框值更改为4

js代码:

function chng(id,rowid,divid,pid,price,divtotal)
{
    var inc = $('#'+id).val();
    var upd = 'update';
    if(inc < 1)
  {
    // $('#'+id).val('1');
    var retVal = confirm("Are You Sure to Remove This Item From Baskets?");
   if( retVal == true ){
      var inc = 0;
   }
   else {   { $('#'+id).val(1); var inc = 1; }   }

  }

        $.ajax({
        type: "POST",
        data: "qty="+inc+"&row="+rowid+"&upd="+upd+"&pid="+pid+"&price="+price,
        url: "<?php echo base_url('grocery/text')?>",
        success: function(html){
        $('#'+divid).html(html);
        if( retVal == true ){
        location.reload();
        }
        }
    });

}

【问题讨论】:

  • 我认为通过 ajax 调用原始值是矫枉过正;您也可以将原始值存储在数据属性&lt;input data-originalvalue="4"&gt;&lt;/input&gt;
  • hidden field 中添加你的初始值,然后它只需要一些if else 来做你正在尝试的事情。
  • 你的js代码在哪里?
  • 添加了..现在你看到了..@karlingen

标签: javascript php jquery codeigniter


【解决方案1】:

你也可以试试这个 jQuery 方法

var count;
$("#count").on("keyup",function(){
    if($(this).val() == 0)
        return;

    count = $(this).val();

});

$("#count").on("blur",function(){
    if($(this).val() == 0){
        $(this).val(count);
    }
});

DEMO

【讨论】:

    【解决方案2】:
    function getValue() {
        var val = $.trim($("#quantity").val());
    
        val = parseFloat(val);
        val = isNaN(val) ? 0 : val;
    
        return val;
    }
    
    $("#quantity")
    .on("keyup", function() {
        var val = getValue();
    
        if (val) {
            $("#quantity").data("old-value", val)
        }
    })
    .on("blur", function(){
        var val = getValue();
    
        if (val == 0) {
            $("#quantity").val($("#quantity").data("old-value"));
        }
    })
    

    JsFiddle DEMO

    【讨论】:

      【解决方案3】:

      为了这样比较,

      if(inc < 1)
      

      你必须把它解析成一个整数,所以使用

      if(parseInt(inc) < 1)
      

      【讨论】:

      • 那样的话,我更喜欢parseInt(inc, 10);
      【解决方案4】:

      你可以使用 jQuery 来做到这一点:

      jquery 代码:

      <script type="text/javascript">
         $(document).ready(function(){
           $("#qty").change(function(){ 
              if($(this).val()<=0){            
                  $(this).val($("#qtyold").val());
              }
              var ch_val=$(this).val();
              $("#qtyold").val(ch_val);
           });
        });
      </script>
      

      HTML 代码:

      <input type="text" id="qty" value=""  />
      

      如果它有效,请告诉我

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-24
        • 2012-01-23
        • 1970-01-01
        • 2016-10-19
        • 1970-01-01
        • 2016-04-16
        相关资源
        最近更新 更多