如何使用jquery增加文本框值?

时间:2012-06-23 06:38:22

标签: javascript jquery

我想在jquery中增加#hidtr值。

<script type="text/javascript">  
    $('#hidtr').val(parseInt($('#hidtr').val()+1));     
    alert($('#hidtr').val());  
</script>

5 个答案:

答案 0 :(得分:10)

试试这个

var val = $('#hidtr').val();
$('#hidtr').val((val*1)+1); 

答案 1 :(得分:2)

我会更喜欢以下方法,因为不需要使用$('#hidtr').val()两次,您也可以根据需要处理该值。

$('#hidtr').val(function(i, oldVal) {
  return parseInt(oldVal || 0, 10) + 1; // oldVal || 0 if initial is empty
});  
alert($('#hidtr').val()); 

<强> DEMO


如果您不想使用上述方法,请遵循:(@ charlietfl提及)

var hidtr = $('#hidtr'), // store the reference, not use multiple time
    val = parseInt( hidtr.val(), 10 ) || 0, // peek the value
    inc = val + 1;  // increment value

hidtr.val(inc); // set value

注意

parseInt(value, radix) 接受两个参数,第一个是值,第二个是基数(对于整数,它将为10,对于十六进制,它将为16,依此类推)。

.val() jquery接受一个值作为参数来设置,也接受一个函数(带有两个参数index和old value)。

答案 2 :(得分:1)

尝试

$('#hidtr').val(parseInt($('#hidtr').val(),10)+1);

您的括号位于错误的位置,建议使用基数,see the docs for paraeInt here

答案 3 :(得分:1)

您需要将其包含在ready回调中并对括号进行调整

$(function(){
   $('#hidtr').val(parseInt($('#hidtr').val(),10) || 0 +1);
    alert($('#hidtr').val());

});

请参阅:jQuery Docs : How jQuery Works,了解为何需要包装

如果在处理程序或函数中多次使用选择器,最好将其缓存

$(function(){
    var $hidtr= $('#hidtr');
     var val=$hidtr.val();
   $hidtr.val(parseInt( val,10)  || 0 +1);
    alert( $hidtr.val());

});

答案 4 :(得分:0)

或其他工作演示 http://jsfiddle.net/AuJv2/5/ ,如果是初始空输入:http://jsfiddle.net/AuJv2/8/

请注意parseInt($('#hidtr').val()+1)应为parseInt($('#hidtr').val())+1

希望这有帮助,

<强>码

var num = parseInt($('#hidtr').val()) || 0;
$('#hidtr').val(parseInt(num)+1);
alert($('#hidtr').val());

$('#hidtr').val(parseInt($('#hidtr').val())+1);
alert($('#hidtr').val());

​