0

誰かがこの問題を解決するのを手伝ってくれますか

Javascript コード:

function CheckAll(pObj) { 
      var mCurrStatus; 
      mCurrStatus = pObj.checked; 
      var mObjList; mObjList = document.all["process"]; 
      for (x = 0; x <= 2; x++) { 
          var Obj;
          Obj = mObjList[x];
          Obj.checked = mCurrStatus; 
      } 
}

asp クラシック コード:

 response.Write "<td nowrap><input type=checkbox name=process_1 " 
 response.Write "/>box1</td>" 
 response.Write "<td nowrap><input type=checkbox name=process_2 " 
 response.Write "/>box2</td>" 

これは私のselectallボックスです:

response.Write "<th align=left><input type=checkbox onclick=CheckAll(this)></th>"

すべて選択ボックスをクリックしたときにこれらのボックスを選択するにはどうすればよいですか(機能が機能していないようです)例を示す代わりに助けてください...助けてくれてありがとう〜

更新しました:

Roland の提案を参照して新しい関数を作成しましたが、うまくいきませんか?

関数 CheckAll() {

var eles = [];
var len = elems.length;
//var inputs = document.getElementsByTagName("input");
var elems = tab.getElementsByTagName("input");
for (var i = 0; i < len; i++) {
    if (elems[i].name.indexOf('process_') == 0) {
        eles.push(elems[i]);
    }
}

//var elems = tab.getElementsByTagName("input");
for (var x = 0; x < len; x++) {
    if (elems[x].type == "checkbox") {
        elems[x].checked = true;
    }


}

}

4

1 に答える 1

1

これは、すべてのチェックボックスを選択してチェックする方法です。

最初に要素を見つけます (これはvanilla.jsです):

// will find all the html elements that have a name containing the value passed
var find = function(name) {
    // you can optimize this part a bit (pass the tag name)
    var elements = document.getElementsByTagName("*");
    var results = [];
    for(var i = 0; i < elements.length; i++) {
        var elementName = elements[i].name;
        if(elementName !== undefined && elementName.indexOf(name) != -1) {
            results.push(elements[i]);              
        }
    }
    return results;
};

次に、この「ユーティリティ」関数を使用してすべてをチェックする方法を次に示します。

var checkAll = function() {
    var checkBoxes = find("process");
    for(var i = 0; i < checkBoxes.length; i++) {
        checkBoxes[i].checked = true;
    }
}

ここにフィドルがあります:

http://jsfiddle.net/BuacB/1/

補足として、このビットは有効な HTML ではありません (引用符がいくつかありません)。

response.Write "<td nowrap><input type=checkbox name=process_1 " 
response.Write "/>box1</td>" 

私はそれが必要であると信じています:

response.Write "<td nowrap><input type='checkbox' name='process_1' " 
response.Write "/>box1</td>" 
于 2013-08-20T08:28:42.300 に答える