我有一个带有三个文本框的表单。我想对他们每个人都有一个关键事件,不管他们先进入哪一个。下面是我的代码:
function showQuoteBox() {
var overlay = '<div id="overlay"></div>';
var quoteBox = '<form id="quoteForm" action="#"><h1>Get a quote from <INSTALLERS NAME></h1><fieldset id="user-details"><label for="inName">Name:</label><input type="text" id="inName" name="name" value="" /><label for="email">Email:</label><input type="email" id="inEmail" name="email" value="" /><label for="phone">Phone:</label><input type="text" id="inPhone" name"phone" value="" /><input type="submit" value="Get quote!" name="submit" class="submit" /></fieldset><div id="sent-details"><span id="nameText"><span id="emailText"><span id="phoneText"></span></div></form>'
jQuery(overlay).appendTo('body');
jQuery(quoteBox).appendTo('body');
jQuery(document).ready(function() {
jQuery('#inName').keyup(function(){
jQuery('#nameText').html(jQuery(this).val());
});
jQuery('#inEmail').keyup(function(){
jQuery('#emailText').html(jQuery(this).val());
});
jQuery('#inPhone').keyup(function(){
jQuery('#phoneText').html(jQuery(this).val());
});
});
}
window.onkeyup = function (event) {
if (event.keyCode == 27) {
jQuery('#overlay').remove();
jQuery('#quoteForm').remove();
}
}
以上是单击按钮时调用的整个函数。它显示了带有三个输入的quoteBox。每个输入框都允许我输入文本,但它只会更新第一个输入的跨度区域。如果任何其他文本框具有值,则所有其他文本框都不会更新。
如果我选择先输入一封电子邮件,它将显示在跨度中,但是当我在任何其他文本框中输入一个值时,它就不会收听。