【问题标题】:jQuery validation plugin - removing elementsjQuery 验证插件 - 删除元素
【发布时间】:2010-03-17 17:55:28
【问题描述】:

我正在使用 jQuery 验证插件。在我的大多数输入类型...标签上,我有 class='required'。

当我通过 JavaScript 提交页面时,会找到页面上具有此类的控件。但是,有一些复选框我不需要验证。

我尝试过从输入标记中完全删除类代码,还尝试过 class='cancel' 和 class='required:false。

当做任何这些事情时,当表单提交时它找不到复选框控件。

我如何仍然保持执行 Request.Form 并找到我的复选框对象的能力,但同时在表单提交时不对这个特定控件应用验证。

谢谢。


在此处编辑。

这是我在没有“检查”代码和三元运算符的情况下使用的。在我的输入标签中,我正在调用这样的函数...

sb.Append("     <td><input type='checkbox' id='chkFlashedCarton' name='chkFlashedCarton' " + strDisabled + " value='true' " + GetPackagingSizeTypeControlValue("chkFlashedCarton") + "  />" + crlf);

在该函数内部是我检查返回的 True 或 False 的地方,就像这样。

case "chkFlashedCarton":
                strResultValue = pst.FlashedCarton.ToString();
                if (strResultValue == "True")
                {
                    strResultValue = " checked";
                }
                break;

strResultValue 是返回的值。

这有助于看吗?谢谢。

【问题讨论】:

    标签: javascript jquery validation plugins


    【解决方案1】:

    我认为未出现的复选框与验证问题无关。默认情况下,没有值的输入不会随表单回传。解决复选框的一种方法是为每个复选框设置一个隐藏的表单字段,该字段设置与复选框同名的相反值。当表单在选中复选框的情况下发回时,您将获得这两个值。如果未选中该复选框,您将获得默认值(来自隐藏字段)。因此,您只需要检查复选框的值是否包含非默认值并在服务器端进行适当的操作。

    <input type='checkbox' name='cb1' value='true' /> Check Me
    <input type='hidden' name='cb1' value='false' />
    

    然后您可以省略 required 类,并确保您始终会为该复选框获得一些价值。

    在服务器端,您可以执行以下操作:

     bool cb1Flag = false;
     if (Request.Form["cb1"].ToUpper().Contains("TRUE"))
     {
          cb1Flag = true;
     }
    

    编辑(基于您的编辑)

    试试这个:

    sb.Append("     <td><input type='checkbox' id='chkFlashedCarton' name='chkFlashedCarton' " + strDisabled + " value='true' " );
    if (pst.FlashedCarton)
    {
        sb.Append( " checked='checked'" );
    }
    sb.Append( "  />" + crlf);
    

    【讨论】:

    • tvanfosson,这正是我需要的帮助。非常感谢您花时间回复和展示示例,非常有帮助。谢谢。
    • tvanfosson,我可以问你,或者这里的其他人,跟进这个吗?既然设置了 value='true' 我将如何动态设置该值?换句话说,当页面加载时,我需要根据条件检查或不检查它。在值尚未设置为 true 的其他控件中,我会这样做 - value='" + CallMyFunction() + "'。既然该值已经设置为 true,那么它在这里如何工作?
    • 假设您使用的是 ASP.NET(因为您谈论的是 Request.Form)。在 MVC 世界中,您将它基于模型——并且可能使用 HtmlHelper——&lt;%= Html.CheckboxFor( model =&gt; model.CBProperty ) %&gt;。在标准的 WebForms 应用程序中,您可以使用绑定(如果在绑定控件的上下文中)或在页面上公开属性并以这种方式获取值&lt;input type="checkbox" name="cb1" value='&lt;%= this.CB1Flag ? "true" : "false" %&gt;' /&gt;
    • 我正在使用 ASP.NET,它是一个标准的 WebForms 应用程序。我正在像这样通过 StringBuilder 写出复选框。这是我现在所拥有的... sb.Append(" " + crlf) ;你能澄清一下这个 value 属性是如何变为 true 并调用一个函数的吗?
    • @d3020 - value='" + chkFlashedCarton.ToString() + "' />" -- 或任何包含实际当前值的值。
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签