- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我必须在发布的表单中填写隐藏元素。当您单击发布表单的按钮时,元素就会被填充。
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<!-- setting all the hidden fields --->
<script type="text/javascript" >
function fnGetPara() {
document.getElementById('EPS_MERCHANT').value = bta_merchant;
document.getElementById('EPS_TXNTYPE').value = bta_txntype;
document.getElementById('EPS_REFERENCEDID').value = bta_referenceId;
document.getElementById('EPS_AMOUNT').value = bta_amount;
document.getElementById('EPS_TIMESTAMP').value = bta_timestamp;
document.getElementById('EPS_FINGERPRINT').value = bta_fingerprint;
document.getElementById('EPS_RESULTURL').value = bta_jumpback;
}
</script>
<!-- finish setting all the hidden fields --->
<form method="post" action="https://....." id="form1" runat="server">
<div class="docdisplay">
<!-- merchant -->
<input type="hidden" name="EPS_MERCHANT" id="EPS_MERCHANT" />
<!-- transaction -->
<input type="hidden" name="EPS_TXNTYPE" id="EPS_TXNTYPE" />
<!-- reference -->
<input type="hidden" name="EPS_REFERENCEDID" id="EPS_REFERENCEDID"/>
<!-- amount to be paid -->
<input type="hidden" name="EPS_AMOUNT" id="EPS_AMOUNT" />
<!-- Timestamp -->
<input type="hidden" name="EPS_TIMESTAMP" id="EPS_TIMESTAMP"/>
<!-- fingerprint -->
<input type="hidden" name="EPS_FINGERPRINT" id="EPS_FINGERPRINT" />
<!-- where we want to go after the payment -->
<input type="hidden" name="EPS_RESULTURL" id="EPS_RESULTURL" />
....
</div>
<div class="docbuttons">
<asp:Button ID="lblauth" runat="server" Text="Authorise payment" OnClick="lblauth_Click" />
</div>
以及方法:
protected void lblauth_Click(object sender, EventArgs e)
{
// get bank transaction data
bankTransAct.setTransactValues(orderId, invoiceNo, orderpaid, out bta_merchant, out bta_pw, out bta_txntype, out bta_amount, out bta_referenceId, out bta_timestamp, out bta_fingerprint);
Page.ClientScript.RegisterStartupScript(this.GetType(), "CallfnGetPara", "fnGetPara()", true);
}
“bankTransAct”方法收集这些隐藏字段的值。
我尝试过带 EPS 或不带 .value 的 id 值。字段 bta_fields 定义如下:
public partial class smsfannrm5 : System.Web.UI.Page
{
//global variables
....
string bta_merchant = string.Empty;
string bta_pw = string.Empty;
string bta_txntype = string.Empty;
decimal bta_amount = 0;
string bta_referenceId = string.Empty;
string bta_timestamp = string.Empty;
string bta_fingerprint = string.Empty;
string bta_jumpback = string.Empty;
protected void Page_Load(object sender, EventArgs e)
{........
每次我跟踪页面时,它都会显示隐藏字段未填充?!当我手动填写隐藏字段时,页面可以正常工作。
感谢任何反馈。我看不出我在哪里犯了错误?
最佳答案
看起来您正在尝试至少执行以下操作之一:
bta_merchant
,来自 JavaScript;或input
尚未标记为 runat="server"
这不起作用,因为客户端的 JavaScript 引擎未连接到 ASP.NET 服务器后端。
我在这里猜测你的用例,但我认为你想要做的是使所有隐藏 input
服务器端控件,即可以从 C# 代码隐藏进行访问。如果是这种情况,请将它们声明为
<input type="hidden" name="whatever" id="whatever" runat="server" />
然后从代码隐藏中设置它们的值,而不是 JavaScript。您将能够在回发时读取它们的值,或者如果您提交到第三方支付网关或其他任何地方,它们将与表单数据一起提交。
如果需要从 JavaScript 访问 HTML 元素,ASP.NET 将呈现一个与 C# 属性名称不同的 ID 属性,因此您需要使用 ClientID
属性:
<script>
var element = document.getElementById('<%= serverSideObject.ClientID %>');
</script>
<小时/>
如果生成的客户端元素的名称和ID很重要,并且您不需要返回该值(即,如果表单永远不会回发),那么您可以这样做相反:
input
常规的旧 HTML 表单元素,不是服务器端元素<%= … %>
) (see introduction to inline expressions here)添加正确的值在这种情况下,您可以编写如下内容:
<input type="hidden" name="whatever" id="whatever" value="<%= someCSharpExpression %>" />
请注意,该元素不是服务器端元素;它没有 runat="server"
属性。因此 ASP.NET 不会破坏元素名称或 ID。 ASP.NET 所做的唯一特别的事情是评估 someCSharpExpression
,将其转换为字符串,然后插入它而不是 <%= … %>
.
关于javascript - 从 CodeBehind 调用 JavaScript 函数无法填充 getElementbyID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26111713/
我有不同的 div,每个 div 都有一个调用相同函数的按钮。 . . . INIT . . . INIT 棘手的部分是每个按钮应该只对自己的 div 执行函数(#btn1 到 #div1、#
XSP.getElementById 和 document.getElementById 之间有什么区别?在我的测试中,两者似乎都返回相同的值(存储在字段中的值)。为 XPage 编码时应首选哪一个?
我通常会通过以下方式为某些事件注册 javascript 函数: myBtn.Attributes.Add("onClick", "Validate(getElementById('"+txtFirs
当我想检查页面中是否存在某个元素时。这两个检查是一样的吗?有没有更好更紧凑的方法来检查是否存在? 如果我想检查 value == '' 该怎么办。这也可以包含在这张支票中吗? 最佳答案 对元素的引用永
我尝试将新值分配给输入表单的隐藏输入和复选框。它在 Firefox 中工作正常,但在 IE 中则不然(我使用的是 IE 7)。有谁知道我的代码有什么问题吗? HTML: Javascript: v
我真的不知道如何描述我的问题,但基本上: 为了好玩,我在 JSFiddle 中编写了一个元素,不知何故我的代码输出只是上下跳动。 如果您想亲自查看,请单击下面的链接,然后单击“提交投诉”按钮。 问题是
document.getElementById("test").value document.getElementById("test").innerHTML 第一个表示地址,第二个表示存储在该地址的
在将 html block 插入 dom 之前,我对在 dom 外构建 html block 很感兴趣,因此我使用 dynatrace 进行了一些测试。我使用了bobince的方法: Is there
我在 GWT 应用程序中使用 native 函数,我尝试了这两种方法: document.getElementById("id") 返回 null 但 $doc.getElementById() 返回
以下代码有什么区别: Hover Over me SomeLink1 SomeLink2 SomeLink3
我正在尝试使用 javascript 设置 div 的内部 html,但由于某种原因,它不起作用。我发现其他人以前也遇到过这个问题,但我在其他帖子中找到的解决方案均无效。我不明白怎么了。 这是我的测试
编辑:我修复了分号、区分大小写以及方括号。如果我删除 buttonPARTICULAR 之后的函数,代码就可以工作!为什么? 编辑:固定。我是个笨蛋。对不起!!! :-Z 当我保持简单时,就像这样,一
很难说出这里问的是什么。这个问题是模棱两可的、模糊的、不完整的、过于宽泛的或修辞的,无法以目前的形式得到合理的回答。如需帮助澄清这个问题以便重新打开它,visit the help center .
我正在尝试创建一个通用的 JavaScript 函数来更改事件的属性。 它的工作方式是 function fooFunction(sourceElement) { var newName =
我需要获取元素的 ID,但该值是动态的,只有它的开头始终相同。 这是一段代码。 ID 总是以 poll- 开头,然后数字是动态的。 如何只使用 JavaScript 而不是 jQuery 获取 ID
我需要使用 VBA 从 HTML 中提取某些信息。 这是我试图单独提取位置信息的 HTML。 Location Dallas/Fort Worth Area Industry
我正在制作一个程序,该程序从输入字段返回值,然后根据条件将字段字符串更改为 x 结果。非常感谢您的帮助,因为这里的成员过去一直给我很大帮助。调试器抛出此错误,当然没有任何效果: script.js:2
我不确定为什么这不起作用,有人可以告诉我为什么吗? var red = [0, 100, 63]; var orange = [40, 100, 60]; var green = [75, 100,
这个问题已经有答案了: Javascript Shorthand for getElementById (24 个回答) 已关闭 8 年前。 我的下面的代码工作正常,但我想知道,是否有任何仅通过 Ja
我有这个simple HTML 标记: //a reserved property name id //same here 但是——运行: alert(document.getEle
我是一名优秀的程序员,十分优秀!