zoukankan      html  css  js  c++  java
  • 解决一个用Request.Form 取checkbox 取不到值的问题.

    问题描述:

    在测试公司系统中某个BUG的时候惊现 用Request.Form 取不到 checkbox 未选中状态时的值.

    解决问题步骤如下:

    在页面上放一个客户端(其实服务器端的也一样)的checkbox控件.代码如下:

        <div>
           <input type="checkbox" id="cktest" name="cktest" checked  />
            <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
        </div>
    

    红色标注的<input type="checkbox" id="cktest" name="cktest" checked />是运行程序的关键.

    然后在服务器端用Request.Form 取 数据 代码如下:

               string str = Request.Form["cktest"];
               Response.Write(str);
    
    checkbox状态

    运行页面,界面如图:

    单击按钮,运行界面如图:(结果正常)
    checked=true

    断点调试结果正常.

    去掉checked属性

    运行页面,界面如图:

    断点调试结果 为空?

    单击按钮,运行界面如图:(没有任何变化,也就是后台根本没取到值.)

    分析:
    个人推测,因为用Request.Form 的方式取值,页面递交数据的时候用的是Post 的方式,可能是因为 控件没有选中,也就是没有值的话,HTML 认为没有必要将一个空值 提交上去,所以的FORM 对象中就没有该值.
    找到问题后解决问题就简单了.
    首先要判断该控件一定是在表单上存在,当用request.form 取的值 为 null的话,那么就认为该checkbox 控件 没有选中, 这个时候就认为checkbox 的选中状态为false 即可.
  • 相关阅读:
    华为交换机中hybrid、access、trunk的区别
    debug调试
    网络基础--ICMP
    HCNA---ARP协议
    Python之字典
    python之元组
    网络基础--Telnet、SSH、FTP
    学习Cisco切换为华为的第一天---Telnet
    学思科,考华为,用华三。这是多少人的现况,快来听听我的经历~
    [P3385]【模板】负环 (spfa / bellman-ford)
  • 原文地址:https://www.cnblogs.com/handk/p/1873661.html
Copyright © 2011-2022 走看看