Я хочу, чтобы одно текстовое поле было автопопуляцией с любым другим текстовым полем, которое было введено в него.JQuery: зеркальное отображение одного текстового ввода на другой
Как это сделать?
Спасибо! Хадсон
Я хочу, чтобы одно текстовое поле было автопопуляцией с любым другим текстовым полем, которое было введено в него.JQuery: зеркальное отображение одного текстового ввода на другой
Как это сделать?
Спасибо! Хадсон
Короткий и простой:
$('#idfield1').keypress(function() {
$('#idfield2').val($(this).val());
});
или привязать его к нескольким событиям, чтобы обновить его и, если он теряет фокус:
$('#idfield1').bind('keypress keyup blur', function() {
$('#idfield2').val($(this).val());
});
Ссылка: .keypress()
, .val()
, .blur()
, .bind()
Обновление:
Из-за таинственных причин, когда набирается символ , первый символ, он не установлен в другом поле ввода. У кого-нибудь есть идея? ;)
Он работает, хотя с использованием keyup
(keydown
также производит тот же странный результат).
Для альтернативы:
или
$('#idfield1').bind('keyup keypress blur', function()
{
$('#idfield2').val($(this).val());
});
Для более поздней версии JQuery вы можете также использовать .on
$('#idfield1').on('keyup keypress blur', function()
{
$('#idfield2').val($(this).val());
});
Dustin Diaz написал замечательное зеркало для Twitter Виджет с использованием jQuery
$.fn.mirror = function (selector) {
return this.each(function() {
var $this = $(this);
var $selector = $(selector);
$this.bind('keyup', function() {
$selector.val(($this.val()));
});
});
};
Используйте его как
$('#source_text_id').mirror('#destination_text_id');
Simple: http://jsfiddle.net/brynner/KnXJc/
HTML
<input type="text" class="mirror" placeholder="one">
<input type="text" class="mirror" placeholder="two">
JQuery
$('.mirror').on('keyup', function() {
$('.'+$(this).attr('class')).val($(this).val());
});
Как я могу заставить его работать над iframe? –
$(document).ready(function() {
console.log("ready!");
/* $(".checking").blur(function() {
alert("Handler for .blur() called.");
}); */
$(".formula_open").click(function(){
getval();
function getval(){
var schedulenameexpression= $('.idfield1').val();
var res = schedulenameexpression.split(/[\s()+*-/]+/);
var i,text,substri,newitem;
for (i = 0; i < res.length; i++) {
text = res[i];
substri = text.substr(6);
var name ="schid_"+substri;
var schname = $('#'+substri).val();
console.log(schname);
schedulenameexpression = schedulenameexpression.replace("schid_"+substri, $("#"+substri).val());
}
$('.idfield2').val(schedulenameexpression);
}
$('.idfield1').bind('keypress keyup blur propertychange', function() {
getval();
});
});
});
Возможно, вы захотите обновить размытие, чтобы захватить события вырезания/вставки. – tvanfosson
@tvanfosson: Вы правы. Сначала я думал о размытии, но потом у меня было слово «зеркало», и я подумал, что это действительно должно быть синхронно ... исправлено. –
Странный предмет бывает. Кажется, что зеркало - один символ. Например, если я набираю «hello person», в другом поле читается «hello perso». есть идеи? – atwellpub