ヘッド領域に次のコードがあります。
<script>
$(function() {
$("#idNameHere").click(function() {
var title = $("#threadTitle").val();
var category = $("#category").val();
var message = CKEDITOR.instances['message'].getData();
errors = new Array();
if (title == "")
errors.push("\n\t- You must enter a title.");
if (category == "")
errors.push("\n\t- You must select a category.");
if (message == "")
errors.push("\n\t- You must enter a message.");
if (errors.length > 0)
{
var errorString = "Please fix the following errors and try again:";
for (var i = 0; i < errors.length; i++)
errorString = errorString + errors[i];
alert(errorString);
}
else
{
$.get("./ajax/createThread.php", { title: title, category:category, message: message }, function(data) {
if (!isNaN(data))
window.location='./viewThread.php?tid='+data;
else
alert(data);
});
}
});
});
</script>
場合によっては (常にではありませんが) リクエストを複数回送信するため、スレッド オブジェクトがデータベースに複数回挿入されることになります。
私が読んだことから、クリック関数が $(function() {}); 内にあるためです。エリア - ただし、そのエリアからクリック機能を取り出すと、クリック イベントがキャッチされず、コードがまったく実行されません。
クリック機能を登録して一度だけ実行するにはどうすればよいですか?