【发布时间】:2014-09-25 22:59:47
【问题描述】:
我是 javascript 的新手,我想使用 javascript 函数来验证文本框中的数据。
我有 1 个文本框 (txtScore)、1 个标签 (lblMark) 和 1 个标签 (lblValidation)。 当分数高于标记时,我希望 javascript 中的 ScoreValidation 函数触发,并在 lblValidation 中显示一条消息。
我的文本框在网格视图中。 gridview 在一个控件中,我正在处理一个 asp.net 项目。
这是我目前控制的代码:
<asp:ObjectDataSource ID="DS" runat="server" TypeName="BLL.MAnswer" DataObjectTypeName="DTO.MAnswer"
SelectMethod="Select" InsertMethod="Update" UpdateMethod="Update" DeleteMethod="Update">
<SelectParameters>
<asp:ControlParameter Name="MAppID" ControlID="lblMAppID" Type="Int16" />
</SelectParameters>
</asp:ObjectDataSource>
<asp:GridView ID="GVQuestion" runat="server" SkinID="QuestionGrid" DataSourceID="DS">
<Columns>
<asp:TemplateField ItemStyle-VerticalAlign="Top">
<ItemTemplate>
<asp:Label ID="lblValidation" runat="server" ForeColor="Red" />
<asp:Label ID="lblMark" Text='<%# Eval("Mark") %>' runat="server"/>
<asp:TextBox ID="txtScore" runat="server" Text='<%# Eval("Score") %>' OnChange="ScoreValidation()"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<script type="text/javascript">
function ScoreValidation() {
var Score = document.getElementById('txtScore').value;
var Mark = document.getElementById('lblMark').value;
var Validation = "Score cannot be higher than mark";
if (Score > Mark) document.getElementById('lblValidation').value = "Score cannot be higher than mark";
}
【问题讨论】:
-
当您的控件位于网格视图中时,它们会根据网格中的行数分配不同的 ID。所以你不能像你那样引用javascript中的控件。
-
嗨,我同意和不同意@Dennis R。看看我的回答,你就会知道为什么。 :-)
标签: javascript asp.net gridview