0

如何在被调用函数中获取当前asp文本框的id?

<script type="text/javascript">

    $(document).ready(function () {
        $("#<%=txtNumeric.ClientID %>").focusout(function () {
            var textvalue = $("#<%=txtNumeric.ClientID %>").val();
            if (!validateDecimal(textvalue))
                return false;
            else {
                $(this).removeClass("focus");
                return true;
            }
        });
    });

    function validateDecimal(value) {
        var RE = new RegExp(/^\d\d*\.\d\d$/);
        if (RE.test(value)) {
            return true;
        } else {
            alert("Please Enter in XX.XX format !");
            $(this).addClass("focus");// this keyword is not working here !!
            $(this).focus(); // this keyword is not working here !!
            return false;
        }
    }
</script>
4

2 回答 2

0

在这样的函数中传递控制对象

$(document).ready(function () {
        $("#<%=txtNumeric.ClientID %>").focusout(function () {
            var textvalue = $("#<%=txtNumeric.ClientID %>").val();
            if (!validateDecimal(textvalue,this))
                return false;
            else {
                $(this).removeClass("focus");
                return true;
            }
        });

    });

    function validateDecimal(value,ControlObject) {
            var RE = new RegExp(/^\d\d*\.\d\d$/);
            if (RE.test(value)) {
                return true;
            } else {
                alert("Please Enter in XX.XX format !");
                $(ControlObject).addClass("focus");// this keyword is not working here !!
                $(ControlObject).focus(); // this keyword is not working here !!
                return false;
            }
        }
于 2012-11-19T07:38:07.027 回答
0

为什么不将它作为参数传递给 validateDecimal,例如 -

function validateDecimal(value, textbox) {
    var RE = new RegExp(/^\d\d*\.\d\d$/);
    if (RE.test(value)) {
        return true;
    } else {
        alert("Please Enter in XX.XX format !");
        textbox.addClass("focus");
        textbox.focus();
        return false;
    }
}

话虽如此,我认为 validateDecimal 不应该有任何逻辑来更改文本框。原因是每个函数应该只做一件事,而 validateDecimal 应该只做验证并返回真/假。更改文本框类/等的逻辑应该在 validateDecimal 之外的另一个函数中。

于 2012-11-19T07:41:01.470 回答