第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何還原默認(rèn)事件偵聽(tīng)器以提交表單

如何還原默認(rèn)事件偵聽(tīng)器以提交表單

慕妹3242003 2021-05-05 17:22:11
我有一個(gè)訂單,用戶可以在提交訂單之前更改其卡信息。如果他們想使用新卡,則可以單擊按鈕以將帶區(qū)支付元素安裝到表單,然后可以輸入新卡信息。表單提交具有async event.preventDefault();從條帶中獲取令牌的功能,因此可以在提交表單之前將其生成并附加到隱藏字段中,以便令牌可以與條帶gem一起使用,以向控制器中的用戶收費(fèi)。  changeCardButton.addEventListener('click', e => {    e.preventDefault();    mountCardField();  });  function mountCardField() {  form.addEventListener('submit', async event => {    event.preventDefault();    const { token, error } = await stripe.createToken(card);    if (error) {    } else {      stripeTokenHandler(token);      form.submit();    }  });}如果用戶改變主意并想返回保存的卡信息,則可以在提交訂單之前單擊“后退”按鈕:  cardContainerBackButton.addEventListener('click', e => {    e.preventDefault();    unmountCardFieldAndShowLastUsedCard();  });  function unmountCardFieldAndShowLastUsedCard() {    card.unmount();    form.removeEventListener('submit', event, false);    changeCardContainer.style.display = 'none';    cardInfo.style.display = 'block';  }但是,form.removeEventListener('submit', event);“不工作”無(wú)法還原表單的默認(rèn)行為并通過(guò)提交而不提交數(shù)據(jù)條令牌的方式來(lái)提交表單。Uncaught (in promise) IntegrationError: We could not retrieve data from the specified Element.              Please make sure the Element you are attempting to use is still mounted.如何從表單中刪除異步事件提交偵聽(tīng)器,并恢復(fù)表單的默認(rèn)提交行為?
查看完整描述

1 回答

?
富國(guó)滬深

TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個(gè)贊

我認(rèn)為問(wèn)題出在您的removeEventListener電話上。第二個(gè)參數(shù)必須是您要?jiǎng)h除的原始偵聽(tīng)器,并且在您傳遞的那一刻event似乎是未定義的。


為了解決這個(gè)問(wèn)題,定義監(jiān)聽(tīng)器作為自己的功能,同時(shí)在使用它add和remove:


const listener = async event => {

  event.preventDefault();

  const { token, error } = await stripe.createToken(card);

  if (error) {

  } else {

    stripeTokenHandler(token);

    form.submit();

  }

}


function mountCardField() {

  form.addEventListener('submit', listener);

}


function unmountCardFieldAndShowLastUsedCard() {

  // ...

  form.removeEventListener('submit', listener);

}


查看完整回答
反對(duì) 回復(fù) 2021-05-27
  • 1 回答
  • 0 關(guān)注
  • 174 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)