我在使用jquery访问用户控件中的文本框时遇到了一些问题。
在我的页面上,我有一个网格控件,在第28,29,30行,我使用相同的usercontrol填充单元格。这是因为用户控件用于键入百分比,而在一列中,三个值不能超过100%。
因此,如果确实发生这种情况,我想将正确的文本框值设置为0或更改颜色,即三个数字超过100%的列。我的问题是我无法使用jquery访问文本框。
的Javascript
function percentageCheck(objNetMarginUnitsSoldFullPrice, objNetMarginUnitsSoldMarkdown, objNetMarginGoodsUnsold) { // pass objects with values
var percentageCntr = new Array();
cntrString = '';
for (var i = 1; i < 15; i++) { // 14 cells in row. Ignore cell 0
if (i < 11) { // less than logic to build control IDs
ctrlString = '_ctl0';
} else {
ctrlString = '_ctl';
}
percentageCntr[0] = objNetMarginUnitsSoldFullPrice[i];
percentageCntr[1] = objNetMarginUnitsSoldMarkdown[i];
percentageCntr[2] = objNetMarginGoodsUnsold[i];
var total = percentageCntr[0] + percentageCntr[1] + percentageCntr[2];
var result = 0;
if(total > 100) {
alert("Cannot exceed 100%");
alert(i); // See correct int value
// $('#ctl00_PageContent_freight_rate_column_chaair_r28_ctl10_txtPercentage').val(result); Works!
$('#ctl00_PageContent_freight_rate_column_chaair_r' + 28 + ctrlString + i + '_txtPercentage').css('backgroundColor', '#EC3434');
$('#ctl00_PageContent_freight_rate_column_chaair_r' + 29 + ctrlString + i + '_txtPercentage').css('backgroundColor', '#EC3434');
$('#ctl00_PageContent_freight_rate_column_chaair_r' + 30 + ctrlString + i + '_txtPercentage').css('backgroundColor', '#EC3434');
}
}
}
我已经对jquery选择器进行了硬编码,但是当我连接整个jquery选择器时它不起作用。我也知道有一种使用jquery访问用户控件的正确方法,但我不确定它是否可以在这里工作。
有什么想法吗?感谢。
答案 0 :(得分:1)
用于设置背景颜色的jquery是正确的
问题可能如下 -
if (i < 11) { // less than logic to build control IDs
ctrlString = '_ctl0';
} else {
ctrlString = '_ctl';
}
如果i = 1,你会得到_ctl01
并且不认为你有01指数的控制