2016-07-27 67 views
0

我使用jQuery append方法添加表單和該方法具有.numerik_kontrol類,但這種功能的工作是另一種形式,但它不工作我的動態表單上動態數字形式的控制問題

我的功能;

$(document).ready(function(){ 

    /** numerik kontrol*/ 
$(".numerik_kontrol").keydown(function (e) { 
     // Allow: backspace, delete, tab, escape, enter and . 
     if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -1 || 
      // Allow: Ctrl+A, Command+A 
      (e.keyCode === 65 && (e.ctrlKey === true || e.metaKey === true)) || 
      // Allow: home, end, left, right, down, up 
      (e.keyCode >= 35 && e.keyCode <= 40)) { 
       // let it happen, don't do anything 
       return; 
     } 
     // Ensure that it is a number and stop the keypress 
     if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) { 
      e.preventDefault(); 
     } 
    }); 
/** numerik kontrol bitiş*/ 

/** select seçim*/ 
$(".btn_ekle").on("click", function(e) { 
    var ekle = $(".ekle").html(); 
    $(".add_after").append(ekle).show(); 

    e.preventDefault(); 

}); 



$(document).on('change', '.havale_tipi', function() { 
    var value = $(this).val(), 
     parent = $(this).closest(".group"); 
    if (value == "iban_no") { 
     $(".hesaba_form", parent).fadeOut(); 
     $(".iban_no_form", parent).fadeIn(); 
    } else { 
     $(".iban_no_form", parent).fadeOut(); 
     $(".hesaba_form", parent).fadeIn(); 
    } 


}); 



$(document).on("click", ".iade_sil", function() { 

    var form_sil; 
    var form_sil = confirm("Formu silmek istediğinize emin misiniz ?"); 
    if (form_sil == true) { 
    $(this).closest(".group").remove(); 
    } else { 
     return false; 
    } 
}); 

document.getElementById('iade_miktari').className="numerik_kontrol"; 


}); 

if you wanna check out full click this link - demo page

如果您單擊窗體按鈕的底部(左按鈕),你會看到在現有numerik_kontrol元件的動態形式

+1

我敢打賭,你沒有創建動態表單,直到你的'$(文件)後.ready'有被調用 - 在這種情況下'numerik_kontrol'元素將不存在 - 所以事件處理程序將不會附加到它們。需要看到更多的代碼,以確保 – Tibrogargan

+0

我添加我的項目codepen你可以看到它:) –

回答

1

在你$(document).ready使用$(document).on事件處理程序,而不是一個​​處理程序。這將處理程序綁定到文檔,當每一個keydown事件發生時評估選擇,而不是在$(document).ready

,而不是處理程序直接綁定到單個選擇評估結果:

$(".numerik_kontrol"),keydown(function(e) { ... 

嘗試更多的東西是這樣的:

$document.on("keydown", ".numerik_kontrol", function(e) { ... 
+0

偉大的答案和學到的東西感謝你:) –