0

これはJqueryボタンイベントのコードであり、各trと各tdをチェックし、変更された場合はさらに進んで、いくつかの属性値を非表示のコントロールに返します。

function SetUpdateOnchange() 
{
$('.sd-flex-grid tbody tr').each(function(intChangedRowNo) {
    //alert('test row');
    $(this).children('td').find(':input,textarea').change(function() {
      //  alert('test');
        var strKeyField = '';
        var strKeyValue = '';
        var strKeyType = '';
        strActField ='';
        strActValue ='';
        strActType ='';
        var strUpdateRows = new String($('#sd-hidden-updaterowsno').val());
        var re = new RegExp(intChangedRowNo + "~+");
        if (strUpdateRows.match(re) == null) {
            $('#sd-hidden-updaterowsno').val($('#sd-hidden-updaterowsno').val() + intChangedRowNo + "~");
            var rowCount = 0;

            $('.sd-flex-grid tbody tr').each(function() {
                if (rowCount == intChangedRowNo) {
                    $(this).children('td').each(function(i) {

                        if ($(this).attr('primarykey') == 'primarykey') {
                            if ($(this).attr('fieldname') != "") {
                                strKeyField = strKeyField + $(this).attr('fieldname') + "|";
                                if ($(this).attr('datatype') == "") {

                                    if (typeof $(this).attr('format') != 'undefined') {
                                        strKeyValue = strKeyValue + RemoveComma($(this).attr('val')) + "|";
                                    }
                                    else {
                                        strKeyValue = strKeyValue + $(this).attr('val') + "|";
                                    }

                                }
                                else {

                                    if (typeof $(this).attr('format') != 'undefined') {
                                        strKeyValue = strKeyValue + RemoveComma($(this).text()) + "|";
                                    }
                                    else {
                                        strKeyValue = strKeyValue + $(this).text() + "|";

                                    }
                                }
                                strKeyType = strKeyType + $(this).attr('actualtype') + "|";
                            }
                        }


                        else if ($(this).attr('primarykey') == '') {

                            $(this).change(function() {


                                if ($(this).attr('fieldname') != "") {
                                    strActField = strActField + $(this).attr('fieldname') + "|";
                                    if ($(this).attr('datatype') == "") {


                                        if (typeof $(this).attr('format') != 'undefined') {
                                            strActValue = strActValue + RemoveComma($(this).attr('val')) + "|";

                                        }
                                        else {
                                            strActValue = strActValue + $(this).attr('val') + "|";

                                        }

                                    }
                                    else {
                                        $(this).find(" :input").each(function() {


                                            // We are checking the format attribute is available..
                                            if (typeof $(this).attr('format') != 'undefined') {
                                                strActValue = strActValue + RemoveComma($(this).text()) + "|";

                                            }
                                            else {

                                                strActValue = strActValue + $(this).val() + "|";


                                            }


                                        });



                                    }
                                    strActType = strActType + $(this).attr('actualtype') + "|";


                                }

                                //$('#sd-hidden-updaterowscolkey').val($('#sd-hidden-updaterowscolkey').val() + strKeyField + "~");
                                // $('#sd-hidden-updateacttype').val($('#sd-hidden-updateacttype').val() + strActType + "~");
                                // $('#sd-hidden-updateactdata').val($('#sd-hidden-updateactdata').val() + strActValue + "~");
                               //  $('#sd-hidden-updateactfield').val($('#sd-hidden-updateactfield').val() + strActField + "~");


                            });

                        }

                    });

                }
                rowCount = rowCount + 1;


            });
            rowCount = null;

            $('#sd-hidden-updaterowscoltype').val($('#sd-hidden-updaterowscoltype').val() + strKeyType + "~");
            $('#sd-hidden-updaterowscoldata').val($('#sd-hidden-updaterowscoldata').val() + strKeyValue + "~");
            $('#sd-hidden-updaterowscolkey').val($('#sd-hidden-updaterowscolkey').val() + strKeyField + "~");
            $('#sd-hidden-updateacttype').val($('#sd-hidden-updateacttype').val() + strActType + "~");
            $('#sd-hidden-updateactdata').val($('#sd-hidden-updateactdata').val() + strActValue + "~");
            $('#sd-hidden-updateactfield').val($('#sd-hidden-updateactfield').val() + strActField + "~");


        }

        re = null;
    });
});
}

strKeyValueは関数内で割り当てられ、外部で使用されます。それはうまくいきます。同様に、関数の外部でstrActvalueにアクセスしたいと思います。関数内で正しい値を返しますが、外部で使用すると未定義と表示されます。

関数の外で変数をどのように使用しますか?

4

2 に答える 2

0

スクリプトファイルの先頭でこれを使用します:

<script>
var globalVal;

次に、JQuery関数で次を使用します。

globalVal=mylocalVal;

Jqueryで値を宣言することはできません。JqueryはJavascriptライブラリです。JavaScript内で宣言できます。Remeber JavaScriptはスクリプト言語なので、行ごとに実行するので、スクリプトの一番上に値を宣言します。

于 2013-01-10T08:53:43.977 に答える
0

グローバル変数を使用できます。グローバル変数は、次のようにvarキーワードなしで変数を定義することによって作成されます。

        strActValue = ""

        $('someButton').click(function(){
               //EVery reference to strActValue in you function now reference the global variable, whose value will survive the function call.

例:

        someVar = 2;

        $('someButton').click(function(){
               someVar=someVar+1;
        });

「someButton」は5回クリックされます

        alert(someVar);

これは「7」に警告します

于 2013-01-10T08:55:16.070 に答える