で提出してください。私がしたいのは、関数croppie()
を非同期で呼び出し、値を取り出してフォーム入力フィールドに設定することです。問題は、これが次の行を非同期的に実行するか、自動的に実行されるためです。つまり、doneはtrueに設定され、フォーム要素が値を取得する前にフォームが送信され、そのデータがポスト配列に含まれなくなります。フォームは、データがimagebase64
に設定されるまで提出することを待つようポーズフォームは、私はJSに提出フォームに問題がある非同期機能
は、誰も私を助けることはできますか?
ありがとうございました。
注:提出タイプの代わりにボタンタイプを使用したくないので、推奨しないでください。
done = false;
$("form").submit(function(e){
if (done === true) {
done = false;
return;
}
e.preventDefault();
if(typeof $uploadCrop != 'undefined') {
$uploadCrop.croppie('result', {
type: 'canvas',
size: 'original'
}).then(function (resp) {
$('#imagebase64').val(resp);
});
}
done = true; // set flag
$('#update-profile-form').submit();
});
submitを '.then()'コールバックに入れます。 –
確かに、理由を説明するコメントを追加しました。 – cDima
このオプションを指定すると、フォームは送信されますが、投稿データは渡されません。 – Nic