6

いくつかの異なる電話番号スキームの電話番号を検証する CustomValidator があります。クライアント側の JavaScript は次のようになります。

validatePhoneNumber(sender, args) {
    cleanNumber = args.Value.replace(/\D/, "");
    country = $("#" + CountryID).get(0).value;
    switch (country) {
        case "North America":
            args.IsValid = validateNAPhoneNumber(cleanNumber);
            if (!args.IsValid) sender.errormessage = "* Not a NA Phone #";
            break;
        case "UK":
            args.IsValid = validateUKPhoneNumber(cleanumber);
            if (!args.IsValid) sender.errormessage = "* Not a UK Phone #";
            break;
...
    }
}

実際の検証は適切に行われ、CustomValidator には常に正しい IsValid プロパティがあります。ただし、sender.errormessage は、この関数呼び出しの直後にデフォルト値に書き換えられているようです。エラーメッセージの値を変更して「固定」するにはどうすればよいですか?

4

9 に答える 9

4
function dateofbirth(sender, args) {

    var dtcDOB = document.getElementById('<%= dtcDOB.ClientID %>');

    var dob = new Date(dtcDOB.value);
    var currDate = new Date();

    if (dtcDOB.value == "") {
        args.IsValid = false;
        sender.textContent = "Provide DOB.";
        return;
    }

    args.IsValid = true;
}

試してみてくださいsender.textContent = "your err msg"。それは私のために働いた。

于 2011-11-10T07:43:21.310 に答える
3

エラー メッセージを変更するには、次のようにします。

if (!args.IsValid) document.getElementById('<%= cstPhoneNumber.ClientID %>').errormessage = "* Not a NA Phone #";

テキストを変更するには、次の操作を行います。

if (!args.IsValid) document.getElementById('<%= cstPhoneNumber.ClientID %>').innerHTML = "* Not a NA Phone #";

cstPhoneNumber検証コントロールの名前に置き換える必要があります。

于 2009-11-22T22:40:35.470 に答える
3

バリデータ コントロールのエラー メッセージを画像で変更する最良の方法は次のとおりです。

sender.innerHTML = "YOUR HTML WITH ANYTHING COME HERE"
于 2012-06-13T04:47:29.767 に答える
2

It looks like your using jquery so you could set the error message like this:

$(sender).text("* Not a NA Phone #");

Edit:

Sorry for the delay but I was away on vacation.

I was playing a round with a simple page and I think I understand how this works.

When you set the errormessage on the sender in the client side validation function you are setting the equivalent of the ErrorMessage property. This is different from the Text property. The ErrorMessage sets the text displayed in the Validation summary, while the Text property is the text displayed in the validator control. Note that if you only set the ErrorMessage property (on the server) then the ErrorMessage will be copied into the Text property.

What this means is that when you set sender.errormessage your actually setting the text that is displayed in the validation summary.

Hopefully this will help clear it up. However, I still haven't seen a way to change the Text property from the client side validation function. I am also not sure why your sender object is not the validator object.

于 2009-08-05T01:09:42.960 に答える
1

sender.innerText = "Your message"動作します。

于 2010-07-28T00:16:42.353 に答える
0

カスタムバリデータタグ定義で Text と ErrorMessage のすべてのインスタンスを削除してから使用します

$(#id_of_custom_validation_control).text("custom error message");

これにより、1 つのカスタム バリデータ コントロールを使用して、複数のエラー条件を処理できます。

例えば

if(error1){
  $(#id_of_custom_validation_control).text("custom error message1");
}else $(#id_of_custom_validation_control).text("custom error message2");

お役に立てれば

于 2010-04-21T19:42:21.363 に答える
0

問題は、クライアント側に「エラーメッセージ」プロパティがないことだと思います。カスタム バリデータは、タグをレンダリングして<span>、カスタム バリデータ コントロールの id プロパティに対応する id を持つエラー メッセージを表示します。検証が失敗したときに表示されるテキストを設定するには、次のようにする必要があります。

... 
case "North America":
    args.IsValid = validateNAPhoneNumber(cleanNumber);
    if (!args.IsValid) 
        document.getElementById(sender.id).innerText = "* Not a NA Phone #";
    break;
...
于 2009-08-05T02:15:31.400 に答える