我需要将函数 validarCartao()
的返回值放入该 HiddenField 值中。 alert(response.brand.name)
工作正常,但我无法得到这个,即使我将 HiddenField 移动到函数内部。我尝试了很多方法但没有任何效果。我非常感谢您提供的任何帮助。谢谢。
var hiddenBandeiraTemp = document.getElementById('<%=hiddenBandeira.ClientID%>');
hiddenBandeiraTemp.value = validarCartao(tbNumeroCartao.value);
function validarCartao(element) {
var cardNum = element.replace(/[^\d.]/g, '');
var card_invalid = 'Número do cartão inválido.';
if (cardNum.length >= 6) {
PagSeguroDirectPayment.getBrand({
cardBin: cardNum.substr(0, 6),
success: function (response) {
if (typeof response.brand.name != 'undefined') {
alert(response.brand.name); // OK
return response.brand.name; // <<--
} else {
alert(card_invalid);
}
},
error: function (response) {
alert(card_invalid);
}
});
}
}
最佳答案
您放入 success
回调中的 return
语句将返回函数 success()
的值,而不是函数 >validarCartao()
success: function (response) {
if (typeof response.brand.name != 'undefined') {
alert(response.brand.name); // OK
return response.brand.name; // <<--
} else {
alert(card_invalid);
}
}
此外,由于函数 PagSeguroDirectPayment.getBrand()
似乎是异步的,因此不可能在 validarCartao()
内返回其值。在我看来,这将是一个更好的解决方案:
var hiddenCompradorIdTemp = document.getElementById('<%=hiddenCompradorId.ClientID%>');
validarCartao(tbNumeroCartao.value);
function validarCartao(element) {
var cardNum = element.replace(/[^\d.]/g, '');
var card_invalid = 'Número do cartão inválido.';
if (cardNum.length >= 6) {
PagSeguroDirectPayment.getBrand({
cardBin: cardNum.substr(0, 6),
success: function (response) {
if (typeof response.brand.name != 'undefined') {
alert(response.brand.name); // OK
hiddenBandeiraTemp.value = response.brand.name;
} else {
alert(card_invalid);
}
},
error: function (response) {
alert(card_invalid);
}
});
}
}
关于javascript - 如何将此 Javascript 函数返回到 HiddenField C# 对象中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27629603/