在客户端单击时从 javascript 函数中检索值
Retrieve value from javascript funcion on client click
我在 JS 上有一个函数必须在代码隐藏之前执行,但我无法检索它。
它将 return 一个我应该在代码隐藏中使用的变量。我创建的函数是这个:
<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" />
我不知道下一步该怎么做,有人可以帮我吗?
有很多种方法 - 冰淇淋的口味可能一样多。
但是,既然您要 运行 基于点击的“代码隐藏”存根?
我会在页面上放置一个隐藏字段,然后在 js 中设置该值
所以就在您的按钮下方 - 添加一个隐藏字段,如下所示:
<form id="form1" runat="server">
<br />
<asp:Button ID="Button1" runat="server" Text="Button"
OnClientClick="myfun();return true" Width="68px"
ClientIDMode="Static"/>
<asp:HiddenField ID="HiddenField1" runat="server" ClientIDMode="Static" />
</form>
<script type="text/javascript">
function myfun() {
// do whatever - walk the dog - have fun!!!
var f1 = document.getElementById("HiddenField1");
f1.value = "2222";
}
</script>
所以在上面我只是将 2222 推入 hidden1 字段。
现在,在按钮存根后面的代码中,您可以这样做:
Debug.Print("my click f1 = " & HiddenField1.Value);
所以后面的代码现在将有一个很好的旧规则平面 jane 控件来查看并获取有问题的值。
因此,这取决于有多少值 - 但使用代码隐藏友好 (asp.net) 控件并使用 js 客户端代码设置值可能是这里最省力的方法。
我当然也使用了“staticID”。如果您出于某种原因不喜欢(或不想)在上面使用 staticID,那么 js 选择将是:
var f1 = document.getElementById("<%=HiddenField1.Clientid%>");
f1.value = cardHash;
我在 JS 上有一个函数必须在代码隐藏之前执行,但我无法检索它。 它将 return 一个我应该在代码隐藏中使用的变量。我创建的函数是这个:
<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" />
我不知道下一步该怎么做,有人可以帮我吗?
有很多种方法 - 冰淇淋的口味可能一样多。
但是,既然您要 运行 基于点击的“代码隐藏”存根?
我会在页面上放置一个隐藏字段,然后在 js 中设置该值
所以就在您的按钮下方 - 添加一个隐藏字段,如下所示:
<form id="form1" runat="server">
<br />
<asp:Button ID="Button1" runat="server" Text="Button"
OnClientClick="myfun();return true" Width="68px"
ClientIDMode="Static"/>
<asp:HiddenField ID="HiddenField1" runat="server" ClientIDMode="Static" />
</form>
<script type="text/javascript">
function myfun() {
// do whatever - walk the dog - have fun!!!
var f1 = document.getElementById("HiddenField1");
f1.value = "2222";
}
</script>
所以在上面我只是将 2222 推入 hidden1 字段。
现在,在按钮存根后面的代码中,您可以这样做:
Debug.Print("my click f1 = " & HiddenField1.Value);
所以后面的代码现在将有一个很好的旧规则平面 jane 控件来查看并获取有问题的值。
因此,这取决于有多少值 - 但使用代码隐藏友好 (asp.net) 控件并使用 js 客户端代码设置值可能是这里最省力的方法。
我当然也使用了“staticID”。如果您出于某种原因不喜欢(或不想)在上面使用 staticID,那么 js 选择将是:
var f1 = document.getElementById("<%=HiddenField1.Clientid%>");
f1.value = cardHash;