如何在被调用的函数中获取当前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>
发布于 2012-11-19 15:38:07
在函数中传递控制对象也是这样的
$(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-19 15:41:01
为什么不将其作为参数传递给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应该有任何逻辑来改变textbox。原因是每个函数应该只做一件事,validateDecimal应该只做验证并返回true/false。更改textbox类/etc的逻辑应该在validateDecimal之外的另一个函数中。
https://stackoverflow.com/questions/13449430
复制相似问题