私はこの質問が既にここで答えをたくさん得ていることを知っていますが、これらの解決策は私のために働いていない、多分私は何かばかげているんだけど、私のコードで正確に何が間違っているのかよく分かりません。また、一時的なデータをオブジェクト配列に保存し、後でajaxとphpを使用してデータベースに送信するのもよいでしょうか?jQueryでオブジェクト配列を正しくクリアするには?
私は多段階のフォームを作成しています。私はステップ間でデータを保存する必要があります。
コードから、私はオブジェクトをクリアするためのさまざまな解決方法を試してみましたが、どれもうまくいきませんでした。また、私は長さをチェックするとき、それは常にオブジェクトが空であることを意味する0です。私はここで何が欠けていますか?
コンソールログをチェックするたびに、以前のデータが残っています(画像を確認してください)。あなたはスコープの問題を持っている私のコード
$(document).on('click', '.e-check', function(){
$('.e-check').text('check_box_outline_blank');
$('.e-check').removeClass('e-checked');
$(this).text('check_box');
$(this).addClass('e-checked');
var edata = '';
edata = {};
edata = undefined;
console.log(edata.length);
edata = {
'ename' : $(this).data('ename'),
'owner' : $(this).data('owner'),
'estart' : $(this).data('estart'),
'eid' : $(this).data('eid'),
'eat' : $(this).data('eat'),
'sec' : $(this).data('sec'),
'pid' : $(this).data('pid')
};
$(document).on('click','.e-next-1', function(){
console.log(edata);
});
});
別のデリゲートバインディング内にデリゲートバインディングを作成しています。それをしないでください。それを自分自身にするためにそれを引き出すので、何度も繰り返し作成されることはありません。以前のバインディングは、e-next-1がクリックされるたびに古い 'edata'変数で繰り返されます。なぜあなたは古いデータを表示していますか? – Taplar
明らかにjavascriptのスコープは理解できません。同じ名前で異なる値を持つ2つの変数を比較しています。続きを読む:http://ryanmorr.com/understanding-scope-and-context-in-javascript/ –
@SamKuhmonen申し訳ありません、私はちょうど、私がオンラインで見つけたさまざまなソリューションでオブジェクトをクリアしようとしていました:D – drpzxc