Jquery在更改时获取输入的值

时间:2014-07-07 17:33:03

标签: javascript jquery html input return-value

我想获取输入的值并将其返回到跨度。我希望每次输入更改时更新范围。问题是我将它用于颜色选择器,因此用户通常不会写颜色值(可能粘贴它)。因此,每次输入文本字段将由colorpicker js更新时,我想更新我自己的字段。

我创建了一个简单的代码来帮助您理解我想要做的事情。

按+你将改变输入字段的值,我想获得该值并在跨度中打印它。谢谢。

HTML ::

<div>
<input type="text" class="mariinsky" /><button id="inside">+</button>
</div>
<button id="outside">Button</button><br />
input value = <span></span>

JS ::

var i = 0;
jQuery('button#outside').click(function() {
    jQuery('div').toggle();
});

jQuery('button#inside').click(function() {
    jQuery( ".mariinsky" ).val(i);
    i++;
});

$( '.mariinsky' ).change( function() {
    var bolshoi = jQuery( ".mariinsky" ).val();
    jQuery( 'span' ).text(bolshoi);
});

http://jsfiddle.net/existence17/9V8ZU/1/

4 个答案:

答案 0 :(得分:1)

.change()添加到&#39; +&#39;的末尾。处理程序:

jQuery('button#inside').click(function() {
    jQuery( ".mariinsky" ).val(i).change();
    i++;
});

这将强制更改事件,然后您的代码将更新范围。

答案 1 :(得分:0)

对于实时DOM更改,请使用jQuery on函数 - 以下代码适用于您的情况:

var i = 0;
    jQuery('button#outside').click(function() {
        jQuery('div').toggle();
    });

    jQuery('button#inside').click(function() {
        jQuery( ".mariinsky" ).val(i);
        i++;
    });

    $( 'button#inside' ).on('click', function() {
        var bolshoi = jQuery( ".mariinsky" ).val();
        jQuery( 'span' ).text(bolshoi);
    });

答案 2 :(得分:0)

jQuery不会通过代码自动触发事件。您需要使用.trigger()方法手动执行此操作。

添加一行代表我:jQuery('.mariinsky').trigger("change")

以下是一个有效的例子:http://jsfiddle.net/9V8ZU/2/

也是一个有用的参考问题:How to trigger jQuery change event in code

答案 3 :(得分:0)

请使用此:

$( '.mariinsky' ).on('keypress keyup keydown click copy cut paste',  function() {
    var bolshoi = jQuery( ".mariinsky" ).val();
    jQuery( 'span' ).text(bolshoi);
});

Fiddle example

所有其他提供的答案都没有涵盖整个选项。