0

この jquery は IE8、9 E 10 では問題なく動作しますが、IE7 では動作しません。

IE7 は、すべてのコントロールが visible=true であると考えます。問題は、controlToValidate.is(":visible") が常に true を返すことです (ただし、これは IE7 でのみ発生します)。

function ValidateRequiredField(source, args) {
    var validateTrue = parseFloat($("[id$=mylabel]").val()) <= 0;
    var _val = ConvertNumber.ToDecimal(args.Value);
    var language = $("[id$=ddlLanguage] option:selected").val();
    var validateChek = false;
    args.IsValid = true;

    var controlToValidate = $("#" + source.controltovalidate);

    if (controlToValidate.is(":visible") && _val < 0 && parseFloat($("[id$=hdnTotal22]").val()) > 0) {
        args.IsValid = false;
        if (language == "pt-BR")
            source.errormessage = "mensagem.";
        if (language == "en-US")
            source.errormessage = "required.";
        if (language == "es-ES")
            source.errormessage = "requier.";
        return;
    } else if(controlToValidate.is(":visible") && _val > 0 && validateTrue) {
        args.IsValid = false;
        if (language == "pt-BR")
            source.errormessage = "Obrigatório.";
        if (language == "en-US")
            source.errormessage = "required.";
        if (language == "es-ES")
            source.errormessage = "requier.";
    }
}

下手な英語でごめんなさい

4

1 に答える 1

0

古いjQueryバージョンのIE7の問題のようです。jQuery のバージョンをアップグレードするか、これを試すことができます。

$(controlToValidate).css('display') == 'none'
于 2013-09-26T19:18:45.660 に答える