Чтобы связать две строки, проще всего использовать объект для создания словаря/карты, как показано ниже;
$('#input1').bind('keyup',function() {
var map = {
"1":"One",
"2":"Fish",
"3":"Bar"
};
$('#input2').val(map[$(this).val()]);
});
Вы можете увидеть это в действии здесь: http://www.jsfiddle.net/dCy6f/
Для более продвинутого поведения:
$('#input1').bind('keyup',function() {
var str = '';
var input = $(this).val();
var intVal = parseInt(input, 10); // Dont forget the radix
var map = {
"1":"One",
"2":"Fish",
"3":"Bar"
};
if (intVal > 50 && intVal < 100) {
str = 'Something';
} else if (map.hasOwnProperty(input)) {
str = map[input];
}
$('#input2').val(str);
});
Вы можете протестировать эту реализацию здесь: http://www.jsfiddle.net/H6skz/.
Если вы хотите, чтобы второе значение обновлялось только после того, как пользователь закончил вводить текст в первое поле ввода, измените «keyup» на «change».
Чтобы абстрагировать это в функцию, вы можете сделать:
function relate(me, withMe) {
$(me).bind('keyup',function() {
var str = '';
var input = $(this).val();
var intVal = parseInt(input, 10); // Dont forget the radix
var map = {
"1":"One",
"2":"Fish",
"3":"Bar"
};
if (intVal > 50 && intVal < 100) {
str = 'Something';
} else if (map.hasOwnProperty(input)) {
str = map[input];
}
$(withMe).val(str);
});
}
а затем используйте его следующим образом:
relate('#input1', '#input2');
Для более интуитивно понятного интерфейса напишите плагин jQuery:
(function ($) {
jQuery.fn.relate = function (withMe) {
this.bind('keyup',function() {
var str = '';
var input = $(this).val();
var intVal = parseInt(input, 10); // Dont forget the radix
var map = {
"1":"One",
"2":"Fish",
"3":"Bar"
};
if (intVal > 50 && intVal < 100) {
str = 'Something';
} else if (map.hasOwnProperty(input)) {
str = map[input];
}
$(withMe).val(str);
});
};
}(jQuery));
а затем используйте следующим образом:
$('#input1').relate('#input2');
person
Matt
schedule
01.10.2010
$('selectorForSecond').val($(selectorForFirst).val())
), первое потребует ууууууууууууууууууууууууууууууууууууууууууоллу много логики. - person Matt   schedule 01.10.2010