2010-09-17 137 views
0

我有一個有趣的問題,我需要解決。客戶想要在輸入元素中輸入客戶ID(使用掃描儀)並使用AJAX,它將用客戶名稱填充另一個輸入元素。應該添加新的輸入元素並設置焦點,以便客戶可以輸入另一個客戶ID。我有兩個需要解決的問題。首先,我需要捕獲掃描器發送的輸入並移至新添加的輸入元素。其次,我需要添加事件到新的輸入元素來處理AJAX調用和從掃描器發送的下一個輸入。任何幫助將不勝感激。使用JQuery添加輸入按鈕

韋德

+0

Scanner = hardware peripheral?所以你無法弄清楚如何在html中獲取掃描器的代碼? – 2010-09-17 01:13:18

+0

掃描儀只不過是一個鍵盤模擬器,但它在發送掃描的條形碼密鑰後發送一個回車鍵。我的問題是我需要處理輸入鍵來觸發其他代碼。 – Wade73 2010-09-17 01:40:50

回答

1

這是一個相當簡單的模板,你可以從工作:

<form> 
    <fieldset> 
     Customer ID: <input name="id" /> 
     Customer Name: <input name="name" /> 
    </fieldset> 
</form>​​​​​​ 
與Ja。

vascript:

​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 
});​ 
+0

如何實現上面顯示的功能?我對JQuery仍然很陌生,所以我幾乎只用了ready事件的附加函數。 – Wade73 2010-09-17 09:21:17

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 }); 

}); 

NewButton類不需要存在於你的CSS中。如果您不知道控件ID或名稱,那麼使用jQuery選擇器是一種非常方便的方法。

希望這是有幫助的。

+0

看起來像這可能是我失蹤。 – Wade73 2010-09-17 01:41:16

1

這也許可以回答你的疑問:

當輸入獲得焦點

$('#inputId').focus(function(){ 

     ///your code here 
    }); 

或者

$('#inputId').keypress(function(e) { 
    if(e.keyCode == 13) { 
     //your code here 
    } 
});