2017-07-20 92 views
1

是否有可能从按钮发送一个值到jQuery的AJAX与onclick函数? 我试过类似这样的代码,但没有工作。 控制台日志中没有任何内容。发送按钮值到jQuery的AJAX与onclick()

HTML

<button type="button" class="hapus_krs" onclick="hapus_krs(this.value)" value="1">x</button> 
<button type="button" class="hapus_krs" onclick="hapus_krs(this.value)" value="2">x</button> 
<button type="button" class="hapus_krs" onclick="hapus_krs(this.value)" value="n">x</button> 

脚本

function hapus_krs() { 
    var formData = { 
     'id_mhs': $(this).val() 
    }; 
    $.ajax({ 
      type: 'POST', 
      url: '<?=base_url()?>akademik/hapus_krs', 
      data: formData, 
      dataType: 'json', 
      encode: true 
     }) 
     .done(function(data) { 
      console.log(data); 
     }) 
}; 

回答

2

当你调用与onclick="hapus_krs(this.value)"的功能,你已经按钮值传递给函数的参数:

function hapus_krs(value) { 
    var formData = { 
     'id_mhs': value 
    }; 
} 

Unobtrusive JS版本:

<button type="button" class="hapus_krs" value="1">x</button> 
<button type="button" class="hapus_krs" value="2">x</button> 
<button type="button" class="hapus_krs" value="n">x</button> 

$('button.hapus_krs').click(function() { 
    var formData = { 
     'id_mhs': this.value // $(this).val() also works but it's unnecessary to invoke another jQuery call 
    }; 
}); 
+0

非常感谢,这是工作的第一个答案。我将尝试Unobtrusive JS版本,看看它是否更好。 –

1

在这里,你去与解决方案https://jsfiddle.net/60qu6mev/

$('.hapus_krs').click(function(){ 
 
var formData = { 
 
    'id_mhs': $(this).attr('value') 
 
}; 
 
console.log(formData); 
 
$.ajax({ 
 
     type: 'POST', 
 
     url: '<?=base_url()?>akademik/hapus_krs', 
 
     data: formData, 
 
     dataType: 'json', 
 
     encode: true 
 
    }) 
 
    .done(function(data) { 
 
     console.log(data); 
 
    }) 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button type="button" class="hapus_krs" value="1">x</button> 
 
<button type="button" class="hapus_krs" value="2">x</button> 
 
<button type="button" class="hapus_krs" value="n">x</button>

我已删除了的onclick从HTML,而使用jQuery的点击事件处理阿贾克斯呼吁& retri从按钮的前夕价值

+0

在HTML上使用onclick()函数有什么缺点? –

+0

@BillyOrigin没有缺点......我只是让JS代码在JS文件中而HTML将是免费的.. – Shiladitya

1

this时,你必须要小心。在您的代码中,this可能不会引用已被点击的按钮。

此外,你传递一个this.value作为参数,但你没有使用它。所以,你的函数应该如下所示:

function hapus_krs(value) { 
    var formData = { 
     'id_mhs': value 
    }; 
    $.ajax({ 
     type: 'POST', 
     url: '<?=base_url()?>akademik/hapus_krs', 
     data: formData, 
     dataType: 'json', 
     encode: true 
    }) 
    .done(function(data) { 
     console.log(data); 
    }) 
};