私はonclickイベントによってトリガされた関数の中で動作するようにajaxコールを取得しようとしています。 event.preventDefaultを使用すると、ページはリロードされませんが、ajax呼び出しは機能しません。データはデータベースに追加されません。私がその行をコメントアウトすると、ページはリロードされますが、他のすべてが機能します。event.preventDefaultはajaxコールを防ぎます
function clickFunction(elem) {
var var1 = elem.id;
var var2 = var1.split("_");
// elem.preventDefault();
if (var2[0] == "Add") {
if (var2[1] == "Calls") {
console.log("Calls");
console.log(var1);
event.preventDefault();
var data = $(this).serialize();
$.post('progressSheetDynamic', data).done(function (response){
$(".1").html(parseInt($('.1').html(), 10)+1);
Calls.update(50);
});
}
}
}
のHTMLコード
<form action="{{ route("progressSheetDynamic") }}" method="post" id= {{ $addID }}>
<input name="increment" value="increment" type="hidden"> </input>
<input type="hidden" name="id" value= {{$activities}} >
<button type="submit" class="styleHover styleButton" onclick="clickFunction(this)" id= {{ 'Add_'.$newText }}> + </button>
</form>
私は、ログをチェックしていると機能はif文の中に起こっています。私はelem.preventDefault()を実行して、ボタンのクリックイベントでpreventDefaultを使用してみました。しかし、これは動作しません。どちらも、falseを返すことを使用しません。
それはなります
HTML:(
clickFunction
でthis
を通らない)のJavascriptコードを書式設定した方が簡単です。人々があなたを助けるためにそれを*より困難にしないでください。 –
エラーhalndlerを追加 – epascarello
最速方法: 'onclick'に' return false; 'を追加してください。 'onclick =" clickFunction(this); falseを返す " –