【问题标题】:ASP.net CustomValidator - ClientValidationFunction to check value not blank and not initial valueASP.net CustomValidator - ClientValidationFunction 用于检查值不是空白且不是初始值
【发布时间】:2013-02-21 09:23:53
【问题描述】:

我有以下代码验证文本框的值以确保它不为空,但我还需要检查它是否不等于文本框的初始值 (defaultValue)。

这是我目前所拥有的......

Javascript:

function textValidation(source, arguments)
   {
        if ( arguments.Value != "" ){ // && arguments.Value != arguments.defaultValue
            arguments.IsValid = true;
        } else {
            $(source).parents("div").css({"background-color":"red"});
            arguments.IsValid = false;
        }
   }

.net

  <asp:TextBox runat="server" ID="Initial" Text="Initial" defaultValue="Initial" Width="120px" />                               

<asp:CustomValidator id="Initial_req"
     ControlToValidate="Initial"
     ClientValidationFunction="textValidation"
     ValidateEmptyText="true"
     runat="server"
     CssClass="errorAsterisk"
     Text="*" 
     ErrorMessage="Complete all correspondence fields" />

【问题讨论】:

    标签: javascript asp.net validation


    【解决方案1】:

    你可以做任何你想做的事情,使用一个 CSS 类来识别 TextBox 并用 jQuery 检索它,让你获得属性defaultValue

    标记:

    <asp:TextBox runat="server" 
                 ID="Initial" 
                 Text="Initial" 
                 defaultValue="Initial" 
                 Width="120px" 
                 ValidationGroup="Test" 
                 CssClass="to-validate" />
    
    <asp:CustomValidator ID="Initial_req" 
       ControlToValidate="Initial" 
       ClientValidationFunction="textValidation"
       ValidateEmptyText="true" 
       runat="server" 
       CssClass="errorAsterisk" 
       Text="*" 
       ErrorMessage="Complete all correspondence fields"
       ValidationGroup="Test" />
    
    <asp:Button ID="btnValidate" runat="server" Text="Validate" ValidationGroup="Test" />
    

    Javascript:

    function textValidation(source, arguments) {
         var initialValue = $(source).siblings(".to-validate:first").attr("defaultValue");
    
         if (arguments.Value != "" && arguments.Value != initialValue) { // && arguments.Value != arguments.defaultValue
             arguments.IsValid = true;
         } else {
             $(source).parents("div").css({ "background-color": "red" });
             arguments.IsValid = false;
         }
     }
    

    【讨论】:

      【解决方案2】:

      1)你没有在你的函数中传递源和参数参数。

      2) 然后调用这个语法方式为ClientValidationFunction="javascript:textValidation(param1,oaram2);return true;"

      3)您可以在文本框中使用必填字段验证here

      4) 或者另一种方式是(我们不使用任何参数)here

      【讨论】:

        【解决方案3】:

        RequiredFieldValidator 将防止空白以及初始值。

        使用属性InitialValue

        here:

        使用它来防止您喜欢的任何值被输入到TextBoxTextBox 不必在开始时嵌入该值 - 它只是不能使用该值提交。

        【讨论】:

        • 这将需要两个RequiredFieldValidators - 一个用于验证“初始”,另一个用于验证“”。
        • 这是我最初的方法,但正如您从我的代码中看到的那样,我希望能够更改使用 CustomValidator 所需的父元素的背景颜色。不过感谢您的建议。
        • @MarcusVinicius - 不,一个验证器将同时做空白和初始
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多