这个标题有点混乱,但这是我的问题:
我在jquery中有这个add函数:
$(document).ready(function(){
var i = $('input').size() +1;
$('#add').click(function(event) {
event.preventDefault();
$('.table1').before('<table class="new_table">
'<tr>' +
'<td colspan="4" class="subTitle_bar">' +
'<spring:message code="phoneTable" /> '+ i +' '+
'</td>' +
'</tr>' +
'<tr>' +
'<td class="item">' +
'<spring:message code="phoneNumber" />' +
'<span class="required">*</span>' +
'</td>' +
'<td colspan="3">' +
'<input type="text" id="phone1' + i + '" name="phone1' + i + '" class="requiredField phone" />' +
'</td>' +
'</tr>');
i++;
});
此类=&#34; requiredField phone&#34;叫这个电话面具:
$(document).ready(function($) {
$.mask.definitions['~']='[+-]';
$('.phone').mask('(99) 9999-9999');
因此,当有人点击添加新字段时,此字段必须有一个掩码,但它没有。
答案 0 :(得分:0)
您正在尝试将事件处理程序绑定到Document ready事件上的$('。phone')元素,而在您尝试这样做时它不存在于DOM树中。
解决方案很简单,你需要做这样的事情(未经测试的代码):
$(document).ready(function(){
var i = $('input').size() +1;
$('#add').click(function(event) {
event.preventDefault();
$('.table1').before('<table class="new_table"><tr>' +
'<td colspan="4" class="subTitle_bar">' +
'<spring:message code="phoneTable" /> '+ i +' '+
'</td>' +
'</tr>' +
'<tr>' +
'<td class="item">' +
'<spring:message code="phoneNumber" />' +
'<span class="required">*</span>' +
'</td>' +
'<td colspan="3">' +
'<input type="text" id="phone1' + i + '" name="phone1' + i + '" class="requiredField phone" />' +
'</td>' +
'</tr>');
i++;
$.mask.definitions['~']='[+-]';
$('.phone').mask('(99) 9999-9999');
});
});
由于每次点击都要添加一个元素,因此使用:last filter或last function:
是有意义的 $('.phone').filter(':last').mask('(99) 9999-9999');
或者
$('.phone').last().mask('(99) 9999-9999');