3

好的,所以我有以下 jquery 代码和一个 html 页面,其中包含一些带有数字 1 - 2 -3 - 4 的按钮和一个文本框。

当我单击一个按钮时,它会在文本框中显示该号码,但是当我再次单击它时,它会删除该号码,我如何使它像电话号码一样,所以我可以键入 1234 而不是每次都删除一个号码.

$('input[type="button"]').click(function() {
    var txt = $(this).val();
    $('#textbox').val(txt);
});
4

8 回答 8

5

您可以使用.val( function(index, value) )执行此操作:

$('input[type="button"]').click(function () {
    var txt = $(this).val();
    $('#textbox').val(function ( _, value) { return value + txt; });
});
于 2013-07-09T11:30:04.390 回答
5

你需要

$('#textbox').val($('#textbox').val() + txt);
于 2013-07-09T11:28:40.173 回答
4

您需要将新值附加到现有值。尝试这个:

var txt = $(this).val(); // assuming 'this' is the button instance
$('#textbox').val($('#textbox').val() + txt);
于 2013-07-09T11:27:19.713 回答
2
$('input[type="button"]').click(function() {
    var txt = $(this).val();
    $('#textbox').val( $('#textbox').val() + txt );
});
于 2013-07-09T11:27:12.777 回答
2

您正在用新值替换旧值。您必须附加旧值。

var oldval= $(this).val();
$('#textbox').val( $('#textbox').val() + oldval);
于 2013-07-09T11:28:18.547 回答
1

请试试这个......

HTML:

<input type="text" id="test">
    <input type="button" id="btn1" value="3">
        <input type="button" id="btn2" value="2">
            <input type="button" id="btn3" value="1">

查询:

jQuery(function($) {
   $('input[type="button"]').click(function() {
    var txt = $(this).val();
       if($('#test').val().indexOf(txt) >= 0)
       {               
           $('#test').val($('#test').val().replace(txt, ''));
       }
       else
       {
           var displayVal = $('#test').val() + txt;
            $('#test').val(displayVal);
       }
});
});
于 2013-07-09T11:46:41.407 回答
0
$('input[type="button"]').click(function() {
  var currentValue = $('#textbox').val();
  var pressedValue = $(this).val();

  $('#textbox').val(currentValue + pressedValue);   
});
于 2013-07-09T11:28:13.513 回答
0

为了获得更好的性能,请将文本框 jQuery obj 保留在变量中,并避免使用 jQuery 来访问按钮值(没有它真的很容易):

var jTextBox = $('#textbox');
...
$('input[type="button"]').click(function(event) {
    jTextBox .val( jTextBox .val() + event.target.value );
    return false;
});
于 2013-07-09T11:32:08.880 回答