我想获取输入的值并将其返回到跨度。我希望每次输入更改时更新范围。问题是我将它用于颜色选择器,因此用户通常不会写颜色值(可能粘贴它)。因此,每次输入文本字段将由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);
});
答案 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);
});
所有其他提供的答案都没有涵盖整个选项。