2011-09-04 103 views
1

我不知道爲什麼添加新輸入後,Masked Input Plugin不適用於它(新輸入)?屏蔽輸入插件問題

例子:http://jsfiddle.net/yx5wa/1/

$('a.add_input').live('click', function (event) { 
    event.preventDefault(); 
    var newDiv = $($(this).closest('.adding').get(0)).clone(true); 
    $(this).closest('.adding').find('.add_input').remove() 
    newDiv.find('.adda').not(':has(.remove_input)').append('<div class="mediumCell"><a href="" class="remove_input">remove</a></div>') 
    newDiv.hide().fadeIn('slow') 
    $('.adding:last').after(newDiv); 
    $('.adding' + ':last input:checkbox').prop('name', 'checkbox_units[' + size_un + '][]'); 
    console.log($('.adding:last input:checkbox').prop('name')); 
}); 

回答

1

它看起來像有兩個問題:

  1. 插件需要點擊事件中被再次應用到新的輸入:

    newDiv.find('input').mask("9999/99/99"); 
    
  2. clone功能需要withDataAndEvents組被稱爲假:

    var newDiv = $($(this).closest('.adding').get(0)).clone(false); 
    

好像你正試圖克隆輸入,然後用.clone(true)帶上面具的功能湊湊熱鬧(右?)。不幸的是,它看起來這不起作用。你可以在這個fiddle中看到,當我嘗試克隆輸入時,它看起來像對原始輸入的引用仍然停留在那裏,產生了一些奇怪的行爲。

+0

如何在輸入'rtl'中輸入從右到左的日期(第一天輸入日期,第二天輸入月份,第三天輸入年份=> '第三種輸入年份/第二種輸入月份/第一種輸入日期')並將其格式化爲:'2011/09/05' –

+0

@Jennifer Anthony這是一個足夠複雜的問題,您應該將其作爲單獨的問題進行開放(這樣你可以得到最好的實現) – attack