如何将这个 Javascript 函数返回放在 HiddenField c# 对象中
本文关键字:回放 HiddenField 对象 返回 函数 Javascript | 更新日期: 2023-09-27 18:35:20
我需要将函数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);
}
});
}
}
谢谢大家。现在它工作正常。我没有把hiddenBandeiraTemp
声明放在validarCartao(element)
里.圣诞快乐!!
function validarCartao(element) {
var hiddenBandeiraTemp = document.getElementById('<%=hiddenBandeira.ClientID%>');
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') {
hiddenBandeiraTemp.value = response.brand.name.toString();
} else {
alert(card_invalid);
}
},
error: function (response) {
alert(card_invalid);
},
complete: function (response) {
}
});
}
}