2017-07-20 46 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); 
    }) 
};