используйте JavaScript, чтобы установить значение скрытого поля PayPal в значение элемента управления Asp - PullRequest
1 голос
/ 06 сентября 2011

У меня есть форма подтверждения заказа aspx.В приведенном ниже коде содержимое берется из базы данных и присваивается атрибуту Text серии элементов управления asp: Label.На этой же странице находится форма «Купить сейчас» для PayPal.То, что я хотел бы сделать, это взять стоимость заказа из базы данных и присвоить ее атрибуту значения ввода «сумма» формы PayPal.Когда я пытаюсь это сделать, значение снова возвращается как «неопределенное».

Я пробовал несколько решений, но ни одно из них не работает.В настоящее время код позади присваивает стоимость элементу управления Value asp: hiddenfield, и JavaScript пытается получить стоимость из этого элемента управления, а затем назначить ее для ввода суммы.

Соответствующий код:

в коде позади ...

costContent2.Value = confirmOrderDataset.Tables[0].Rows[0]["orderCost"].ToString();

...

на странице: ...

<script type="text/javascript">
function setAmount() {
cost = document.getElementById("costContent2").Value;
document.forms["paypalForm"].amount.Value = cost;
}
</script>
</head>
<body onload="setAmount()">
<form runat="server" name="paypalForm" id="paypalForm" action="https://www.paypal.com/cgi-bin/webscr" method="post">
<asp:HiddenField runat="server" ID="costContent2" Value="" />
<input type="hidden" name="cmd" value="_s-xclick" />
<input type="hidden" name="hosted_button_id" value="X5RRRCPCDL7D8" />
<input type="hidden" name="amount" value="" />
<input type="image" src="https://www.paypalobjects.com/WEBSCR-640-20110429-1/en_US/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!" />
<img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1" />

...

Я попытался изменить количество ввода для элемента управления asp, но я все еще получаю "undefined" в качестве значения.

Спасибо за помощь!

1 Ответ

0 голосов
/ 06 сентября 2011
  1. JS чувствителен к регистру.У вас есть значение, а не значение

  2. Просмотр отображаемой страницы.Скорее всего, вы увидите ID = "C100 ........ costContent2 ......"

Используйте

function setAmount() {
  var cost = document.getElementById("<%= costContent2.ClientID %>").value;
  document.forms["paypalForm"].amount.value = cost;
}

и посмотритев этой статье: http://jagregory.com/writings/how-to-use-clientids-in-javascript-without-the-ugliness/

В качестве альтернативы установите значение в asp

<input type="hidden" name="amount" value="<%= someValueSetEarlier" %>" />

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...