【发布时间】:2021-05-22 13:34:25
【问题描述】:
我在 JS 上有一个必须在代码隐藏之前执行的函数,但我无法检索它。 它将返回一个我应该在代码隐藏中使用的变量。我创建的函数是这个:
<script type="text/javascript" >
function returnHash() {
var checkout = new DirectCheckout('086F7D02A071267FEBF102EB759D9845B8B3333DFA65BC45B807F41A8525AD8D'); /* Em sandbox utilizar o construtor new DirectCheckout('SEU TOKEN PUBLICO', false); */
debugger;
var month = document.getElementById("txtDataVencUser").value;
var year = document.getElementById("txtDataVencUser").value;
var cardData = {
cardNumber: document.getElementById("txtNumeroCartaoUser").value,
holderName: document.getElementById("txtNomeCartaoUser").value,
securityCode: document.getElementById("txtCodSegurancaUser").value,
expirationMonth: month.substring(0, 2),
expirationYear: "20" + year.substring(3, 5)
};
checkout.getCardHash(cardData, function (cardHash) {
----------------------------> I NEED TO RETRIEVE "cardHash" VALUE IN CODEBEHIND
}, function (error) {
console.log(error);
});
}
</script>
我不知道这一步是否正确,但是我正在使用onClientClick尝试在代码隐藏之前执行JS:
<asp:Button ID="btnFinalizarCompraJunoUser" runat="server" Text="FINALIZAR COMPRA" OnClientClick="returnHash()" OnClick="btnFinalizarCompraJunoUser_Click" Visible="true" />
我不知道下一步该做什么,有人可以帮我吗?
【问题讨论】:
-
一个常见的做法是设置一个隐藏的表单字段值,以便它与表单一起发布到服务器。
-
看起来
getCardHash有一个类似承诺的签名,您可以在其中确认“成功”和“失败”回调。如果是这种情况,那么您可能会遇到此函数在等待“成功”回调之前完成的问题。我不知道OnClientClick是否支持async-functions,但如果支持,你可以尝试重写该函数以使用await。 -
@Stanislas,我对 javascript 很陌生,我应该在哪里声明 await 运算符?
标签: javascript c# asp.net ajax web-site-project