如何做以下掩码输入问题?
我有一个掩盖文本框的脚本,就在这里
jQuery(function($) { $('#j').mask('99:99'); });
我也有一个脚本动态添加文本框,而我点击一个按钮
function addRow(tableID) { var table = document.getElementById(tableID); var rowCount = table.rows.length; var row = table.insertRow(rowCount); var colCount = table.rows[0].cells.length; for(var i=0; i<colCount; i++) { var newcell = row.insertCell(i); newcell.innerHTML = table.rows[0].cells[i].innerHTML; //alert(newcell.childNodes); switch(newcell.childNodes[0].type) { case "text": newcell.childNodes[0].value = ""; newcell.childNodes[0].id="j"; alert(newcell.childNodes[0].id); break; case "checkbox": newcell.childNodes[0].checked = false; break; case "select-one": newcell.childNodes[0].selectedIndex = 0; break; } } } function deleteRow(tableID) { try { var table = document.getElementById(tableID); var rowCount = table.rows.length; for(var i=0; i<rowCount; i++) { var row = table.rows[i]; var chkbox = row.cells[0].childNodes[0]; if(null != chkbox && true == chkbox.checked) { if(rowCount <= 1) { alert("Cannot delete all the rows."); break; } table.deleteRow(i); rowCount--; i--; } } }catch(e) { alert(e); } }
我的输入框是
我现在面临的问题是,第一个文本框将有一个蒙版结构,但在我用j脚本的帮助动态添加一个文本框后,我不会将文本框视为蒙版?为什么? 我做错了什么?
使用livequery插件 。 然后给出你想要掩盖类maskme
所有元素。 现在你可以这样做:
$(".maskme").livequery(function(){ $(this).mask('99:99'); });
这将掩盖即使在首次运行代码后添加的输入。
使用类创建绑定到输入的事件(如果不必使用,则不要使用ID)。 使用jQuery .on方法http://api.jquery.com/on/
例:
您可以动态创建所需的那些输入,并使用on事件绑定来屏蔽它们。 您创建的该类的每个新输入都将附加到该事件处理程序。
首先不要在输入上使用ID
第二,如果您使用jQuery然后使用它。 这更容易阅读。
掩码插件不会绑定到DOM中的新元素,而是绑定到$(’#j’)选择器中当时存在的元素。
- 使用类而不是ID(因为你不能合法地在页面上有两个具有相同id的元素),和
- 如有必要,在添加到DOM后,在动态创建的元素上重新调用
.mask()
。