0

jquery を使用してユーザー コントロールのテキスト ボックスにアクセスする際に少し問題があります。

私のページにはグリッド コントロールがあり、行 28、29、30 に同じユーザー コントロールをセルに入力しています。これは、パーセンテージを入力するためにユーザー コントロールが使用され、1 つの列で 3 つの値が 100% を超えることができないためです。

したがって、これが発生した場合は、正しいテキスト ボックスの値を 0 に設定するか、色を変更します。つまり、3 つの数値が 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 に答える