0

誰かがこれを手伝ってくれませんか?

私は別のプログラマーからこの関数を持っています:

function checkRequired(fieldList) {
    var field = null;
    var blankFields = [];
    for (var i = 0; i < fieldList.length; i++) {
        listItem = fieldList[i].split;
        fieldId = field[0];
        label = field[1];
        field = document.getElementById(fieldList[i].split("||")[0]);
        if (isVisible(field) && isBlank(field)) {
            blankFields[blankFields.length] = fieldList[i].split[1];
        }
    }

私はこのjson配列をそれに渡します:

var fieldList = new Array("'15||Project Requested By'","'18||Project Title'","'20||Banner Details'","'202||Flyer Details'","'2134||If Gl Code Not above'","'5862||Quantity'");

FBを使用すると、この行で関数がエラーになることがわかります[listItem = fieldList[i].split;]

.splitが何をしているのか、そしてそれが引き起こしている問題を正確に理解していません。

どんな助けでもいただければ幸いです。

更新:エラーが発生した場所を示す画像が追加されました: ここに画像の説明を入力してください

4

2 に答える 2

1

split何を分割するかを指示するパラメーターを指定する必要があります。

今のところ、split関数自体をlistItem;に割り当てるだけです。あなたはそれを呼んでいません。

あなたはおそらく意味します

listItem = fieldList[i].split("||");

分割用のMDNDocs

編集

さらに詳しく調べてみると、には何も割り当てていないfieldのでnull、配列のようにアクセスしようとした時点と同じです。したがって、おそらくあなたが意味するのは:

 field = fieldList[i].split("||");
于 2013-01-17T17:30:57.360 に答える
0

私の推測では、関数は次のようになります。

function checkRequired(fieldList) {
    var field = null,
        blankFields = [],
        listText, listItem, fieldId, label;

    for (var i = 0; i < fieldList.length; i++) {
        listText = fieldList[i];
        listText = listText.substring(1, listText.length - 1); // trim ' (single quote)
        listItem = listText.split("||");
        fieldId = listItem[0];
        label = listItem[1];
        field = document.getElementById(fieldId);

        if (isVisible(field) && isBlank(field)) {
            blankFields.push(label);
        }
    }

    return blankFields;
}

isVisible()とisBlank()がどこかで定義されていると仮定します。

于 2013-01-17T17:52:52.263 に答える