我有動態創建5個collapsibles(內部的可摺疊)以下jQuery函數:呼叫的jQuery(jQuery的移動)
$(function() {
var key, value;
var Storage = 5
// loop through local storage
for (var i = 0; i < Storage; i++) {
// retrieve the key
key = i;
// set the field from the key
value = "Medicine" + i.toString();
//$("#medListDiv").show();
var text = '<div data-role="collapsible" data-collapsed="true" data-iconpos="right">' + '<h2>' + value + '</h2>' + '<input id="number' + i.toString() + '" type="text" placeholder="Quantity" />' + '<textarea cols="40" rows="4" placeholder="Type any directions written on your prescription for the above medicine." ></textarea></div>';
$("#medListDiv div:first").append(text);
}
$('#medListDiv').find('div[data-role=collapsible]').collapsible();
$('#medListDiv').trigger("create");
});
上面的代碼設定不同id
到每個textbox
(通知'<input id="number' + i.toString() + '" type="text" placeholder="Quantity" />'
)。
我現在的問題是,我想這些文本框只接受數字(全數字只有 - 沒有小數),所以我想出了(找到)用下面的函數時,給出一個「靜態」的ID完美的作品:
$("#number0").on('keypress', function(ev) {
var keyCode = window.event ? ev.keyCode : ev.which;
//codes for 0-9
if (keyCode < 48 || keyCode > 57) {
//codes for backspace, delete, enter
if (keyCode != 0 && keyCode != 8 && keyCode != 13 && !ev.ctrlKey) {
ev.preventDefault();
}
}
});
我一直在試圖使此功能取任何id
取決於用戶選擇textbox
。
這Fiddle我只顯示5 collapsibles
但我的原始程序需要用戶輸入和藥物的數量可能會有所不同。請注意,第一個Quantity
文本框不會允許任何字母。我希望所有Quantity
文本框的行爲方式相同。
我也嘗試了不同的功能,添加了var qtyID = $(this).attr(i);
,因此刪除了沒有數字的任何輸入,但似乎沒有做這項工作。
$(document).ready(function() {
var qtyID = $(this).attr(i);
$("#number" + qtyID).keypress(function (e) {
var value = $(this).val();
value = value.replace(/[^0-9]+/g, '');
$(this).val(value);
});
});
我也試過把整個函數放在主函數裏面,但根本沒有幫助。 基本上所有我想要的是能夠get
動態創建id
從那些textboxes
,所以我可以調用他們的一個小函數,但無數的例子,我看到了網上如何做到這一點,我無法設法得到它工作。
任何建議將不勝感激。
不要使用'。就緒()'在JQM。 – Omar