【发布时间】:2014-08-17 04:05:39
【问题描述】:
我有一个包含三个文本框的表单。我想对他们每个人都有一个关键事件,不管他们先进入哪一个。下面是我的代码:
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。每个输入框都允许我输入文本,但它只会更新第一个输入的跨度区域。如果任何其他文本框具有 in 值,则所有其他文本框都不会更新。
如果我选择先输入一封电子邮件,它将显示在跨度中,但是当我在任何其他文本框中输入值时,它不会收听。
【问题讨论】:
-
您的代码看起来不错。也许我不确定你的问题是什么。你能更详细地解释一下吗?如果有帮助,您注册这些事件的顺序应该与您的用户输入文本的顺序完全无关。
-
我已经编辑了问题以充分展示我的问题
-
+1,并删除了我的反对票。好多了,好多了!干得好。