0

我在使用 jquery 访问用户控件中的文本框时遇到了一点问题。

在我的页面上,我有一个网格控件,在第 28、29、30 行,我使用相同的用户控件填充单元格。这是因为用户控件用于输入百分比,并且在一列中三个值不能超过 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 访问用户控件的正确方法,但我不确定它是否可以在这里工作。

有任何想法吗?谢谢。

4

1 回答 1

1

您用于设置背景颜色的 jquery 是正确的

问题可能如下——

if (i < 11) { // less than logic to build control IDs
            ctrlString = '_ctl0';
        } else {
            ctrlString = '_ctl';
        }

如果 i = 1 你会得到_ctl01并且不认为你可以控制 01 索引的原因

于 2012-07-23T09:17:21.247 回答