我有一个有趣的问题需要解决。客户想要在输入元素中输入客户ID(使用扫描仪)并使用AJAX,它将使用客户名称填充另一个输入元素。应添加新的输入元素并设置焦点,以便客户可以输入另一个客户ID。我有两个问题需要帮助解决。首先,我需要捕获扫描仪发送的输入并移动到新添加的输入元素。其次,我需要向新的input元素添加事件来处理AJAX调用以及从扫描器发送的下一个输入。任何帮助将不胜感激。
韦德
答案 0 :(得分:1)
@Wade73,添加一个新控件很容易。您需要选择一个元素来将控件置于或内。
$('#PlaceButtonIn').appendTo("new button html");
$('#PlaceButtonIn').append("new button html");
#PlaceButtonIn
可以是div或td,也可以用来放置新控件。
新控件没有事件,因此请使用实时推荐。
$('#PlaceButtonIn').append("<input type='button' class='NewButton'>");
$(document).ready(function(){
$('.NewButton').live('click', function() { //Do click event here });
});
您的CSS中不需要存在NewButton类。如果您不知道控件ID或名称,这是使用jQuery选择器的一种方便方法。
希望这有用。
答案 1 :(得分:1)
也许这可以回答你的疑问:
输入获得焦点时
$('#inputId').focus(function(){
///your code here
});
或者
$('#inputId').keypress(function(e) {
if(e.keyCode == 13) {
//your code here
}
});
答案 2 :(得分:1)
这是一个可以使用的相当简单的模板:
<form>
<fieldset>
Customer ID: <input name="id" />
Customer Name: <input name="name" />
</fieldset>
</form>
使用Javascript:
jQuery(function($) {
var form = $('form'),
fieldset; // defined here but set below after we get our event attached
$('input[name=id]').keyup(function(e) {
if(e.keyCode === 13) {
var clone = fieldset.clone(true).appendTo(form);
clone.children('input[name=id]').focus();
$.get('getCustomerName.php', {id: this.value}, function(data) {
clone.children('input[name=name]').val(data);
});
}
});
fieldset = $('fieldset').clone(true); // clones our fieldset template with events
});