【问题标题】:What value can I test against to check a variable for a possible unchecked checkbox value我可以测试什么值来检查变量是否有可能未选中的复选框值
【发布时间】:2012-10-04 13:48:37
【问题描述】:

我有一些纠错代码,我想测试以确保由“Request.Form[“checkbox”]”分配的变量是检查时给出的值(比如说“打勾”)或如果未选中,则无论该值是多少。

在尝试使用 Request.Form 为其赋值之前,我将变量声明为空字符串

我尝试了以下方法:

if(IsGangMember != "ticked" || IsGangMember != "")
    {
        errorMessage = "The \"Search For Street Gang Member\" field contains an invalid value.";
    }

还有这个:

if(IsGangMember != "ticked" || IsGangMember != null)
    {
        errorMessage = "The \"Search For Street Gang Member\" field contains an invalid value.";
    }

还有这个:

if(IsGangMember != "ticked" || IsGangMember.IsEmpty())
    {
        errorMessage = "The \"Search For Street Gang Member\" field contains an invalid value.";
    }

我还尝试将值打印到屏幕上(如果未选中框)以查看它,当然它是空的,所以我看不出该值如何除了空字符串或 null .

感谢任何帮助,谢谢!

更新:

好的,所有给出的解决方案都很有意义,但是如果不选中,错误消息仍然会被设置。

这就是我正在做的所有事情:

var IsGangMember = "";

然后:

IsGangMember = Request.Form["sIsGangMember"];

(sIsGangMember 是输入复选框字段的名称) 那么:

if(IsGangMember != "ticked" || !String.IsNullOrEmpty(IsGangMember))
{
    errorMessage = "The \"Search For Street Gang Member\" field contains an invalid value.";
}

如果未选中,errorMessage 仍会被分配。 :( 为什么?

【问题讨论】:

  • 您为什么不尝试使用其“ID”访问复选框?
  • IsGangMember 的声明是什么?
  • @Praveen 因为表单会在帖子上查找名称...无论如何,ID 和名称在语法上相同并不重要。
  • @Milind Thakkar 它最初被声明为 var IsGangMember = "";
  • 我认为!String.IsNullOrEmpty(IsGangMember) 应该与String.IsNullOrEmpty(IsGangMember) 不同。同时调试你的代码——断点

标签: c# html forms checkbox


【解决方案1】:

使用String.IsNullOrEmpty

if(!String.IsNullOrEmpty(IsGangMember))
{
   //test for other values
}
else
{
   //String is empty
}

想法应该是相反的

if(IsGangMember != "ticked" || String.IsNullOrEmpty(IsGangMember))
{
    errorMessage = "The \"Search For Street Gang Member\" field contains an invalid value.";
}

【讨论】:

  • 它不应该反过来,因为我正在测试该复选框是否包含我希望它具有的值,但就像其他针对 null 或空字符串的测试一样,它仍然输入if 分支就好像除了 null、空字符串或“勾选”值之外的某个值被分配给 IsGangMember。
  • 您使用的是||,即OR。因此,如果其中一个为真,它将分支。说明您希望如何检查条件
  • XD 脸!很明显....我需要“&&”而不是“||” pshh 我怎么没有早点发现这个......当然它总是会是一个“或”另一个:S 我需要睡觉......
  • 也感谢教我 String.IsNullOrEmpty 方法。不知道那里有。
【解决方案2】:

如果未选中该复选框,它将在 Request.Form 集合中不可用。如果选中,它将在集合中,键为“checkbox”,值为“on”。

所以你可以很容易地检查它

Request.Form["checkbox"] != null

【讨论】:

  • 那么我之前分配给空字符串的变量不应该仍然是空字符串吗?我真的需要检查分配给变量的值。
  • @VoidKing 是的,你是对的。然后您可以按照“codingbiz”的建议通过 String.IsNullOrEmpty 检查它。
【解决方案3】:

XD

捂脸!

很明显....我需要“&&”而不是“||”嘘

我怎么没早点发现这个......

当然,它永远是一个“或”另一个:S

我需要睡觉...

【讨论】:

    猜你喜欢
    • 2012-11-02
    • 2018-07-04
    • 1970-01-01
    • 2011-02-10
    • 1970-01-01
    • 2014-07-03
    • 2018-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多