zoukankan      html  css  js  c++  java
  • JS初体验——GridView中的数据验证

    今天碰到了一个新的问题:在GridView的编辑状态下,如何对单元格内修改后的数据进行验证?

    首先贴上一个在论坛上淘的正则:

    function Check(a) {
    var re = /^([1-9][0-9]*|0)(\.[0-9]+)?$/;
    return re.exec(a) != null;
    }
    //这个正则验证的字符串为:纯数字,一个小数点,非0开头,非空。

    GridView控件中的数据验证难在单元格内的控件ID是页面生成后产生的,虽然也可以通过控件所在的行列序号来获取ID,但对我这个菜鸟来说还是有点复杂。

    怎么办呢,一番思索,我想到了也许可以在this参数上做文章,于是我在GOOGLE查询JS中this参数的用法。结果在第一个搜索结果中就得到了下面这句话

    在JavaScript中,this通常指向的是我们正在执行的函数本身,或者是指向该函数所属的对象(运行时)。

      

    后半句提醒了我,我马上有了思路。

    做法如下:

    • 将GRIDVIEW中需要在修改时验证的列改为模板列。
    • 在前端代码中修改模板列中的控件属性

      

    <EditItemTemplate>
    <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Amount") %>' onblur="amountcheck(this)" Width="40"></asp:TextBox>
    </EditItemTemplate>
    //this参数传入了控件的对象,替代了通过控件ID获取控件对象这一步
    • 添加JS代码

    function amountcheck(tb) {
    if (!Check(tb.value)) {
    alert(
    "请输入正确的数量!");
    tb.focus();
    }
    }

    好了,现在GridView中的单元格在失去焦点时,就会触发验证,并且在用户没有输入符合要求的值之前,这将是一个死循环(有点霸道,不是好的处理方式)。

  • 相关阅读:
    maven 执行mvn package/clean命令出错
    IDEA
    贝叶斯
    python基础之python基本数据类型
    python基础(一)python数据类型,条件,循环
    ...
    读取70开头的xml,gbk转成utf-8
    CSS实现多个Div等高,类似表格布局
    JBOSS 5 session时间配置
    padding
  • 原文地址:https://www.cnblogs.com/xxfss2/p/1750338.html
Copyright © 2011-2022 走看看