This i burada nasıl kullanırım
$('.loginForm').on('submit',function (e){
e.preventDefault();
//Aşağıda görüldüğü gibi .loginForm yazmak yerine this yazarak ilgili formu seçtim
var data=$(this).serialize();
//Burdada this kullanmak istiyorum ama nasıl
$('.loginForm button').attr('disabled','disabled');
alert()
})
Böyle yazdım ama çlışmadı
//Böyle yazdım çalışmadı
$(this+' button').attr('disabled','disabled');
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (5)
$('.loginForm').on('submit',function (e){
e.preventDefault();
//Aşağıda görüldüğü gibi .loginForm yazmak yerine this yazarak ilgili formu seçtim
let data = $(this).serialize();
// Eğer bu buton form ögesinin bir seviye altında ise yani direkt olarak çocuğu ise
$(this).children("button").prop('disabled', true);
// Ya da bu buton form ögesinin içerisinde bir yerlerde ise (çocuk, torun veya daha aşağısı)
$(this).find("button").prop('disabled', true);
alert()
})
success fonksiyonu içerisindeki this, ajax ı temsil ediyor, arrow fonksiyonlarda this kavramı olmadığı için success fonksiyonunda arrow function kullanırsanız bir üstteki fonksiyonu işaret etiş olursunuz. Yani kodu şu şekilde düzenleyin;
$('.loginForm').on('submit',function (e) {
e.preventDefault();
let data=$(this).serialize();
$(this).find('button').prop('disabled', true);
$.ajax({
url: 'ajx/asd/dd.php',type: 'POST',data: data,
success: data => {
if(data == 1){
window.location.href='./';
}else{
$.formAlert(data,'.loginForm');
$(this).find('button').prop('disabled',false);
}
}
});
});
Daha detaylı bilgi için Bakınız
ya da alternatif olarak
$('.loginForm').on('submit',function (e) {
e.preventDefault();
let $this = $(this),
data = $this.serialize()
$this.find('button').prop('disabled', true);
$.ajax({
url: 'ajx/asd/dd.php',type: 'POST',data: data,
success: function (data) {
if(data == 1){
window.location.href='./';
}else{
$.formAlert(data,'.loginForm');
$this.find('button').prop('disabled',false);
}
}
});
});
Abdullah bey kod çalıştı lakin butonu enable edemiyorum aşagıdaki şekilde yazdım ama olmadı
$(this).find('button').prop('disabled',false); // bu şekil enable olmadı
$('.loginForm').on('submit',function (e) {
e.preventDefault();
let data=$(this).serialize();
$(this).find('button').prop('disabled', true);
$.ajax({
url: 'ajx/asd/dd.php',type: 'POST',data: data,
success: function (data) {
if(data==1){
window.location.href='./';
}else{
$.formAlert(data,'.loginForm');
$(this).find('button').prop('disabled',false);
}
}
});
});