javascript - 如何将此 Javascript 函数返回到 HiddenField C# 对象中?

标签 javascript c# asp.net hiddenfield

我需要将函数 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/

相关文章:

javascript - 根据下拉菜单中选择的项目隐藏所有元素

javascript - 单击下一步按钮时如何更改事件阶段

javascript - Django表单提交按钮的onclick不调用JavaScript函数

javascript - 如何使用javascript限制文本框中的中文字符

c# - 访问 session 对象中的数组元素

c# - 如何从 exe 返回值并使用 C# 捕获返回值

c# - httpClient.PutAsync() 未更新,415 不支持的媒体类型

javascript - 强制 AutoCompleteExtender 下拉菜单通过 Javascript 重新显示

c# - iTemplate 它是什么以及我可以在 C# 中获得好的例子的地方

c# - 如何在 asp.net 中设置特定的控件标识?