0

このスクリプトをタブと組み合わせて使用​​しているので、ユーザーがタブを切り替えたときに、前のタブでチェックボックスが選択されていると、チェックボックスがオフになります(メッセージングシステムに役立ちます)

ただし、ご覧のとおり、問題はラインが

var w = document.getElementsByTagName('input'); 

すべての入力を選択し、タブを変更するとすべてのテキストボックスなどがチェックボックスに変わりますが、とにかく入力ではなくチェックボックスしか選択できませんか?

var w = document.getElementsByTagName('input'); 
        for(var i = 0; i < w.length; i++){ 
            if(w[i].type='checkbox'){ 
                w[i].checked = false; 

            }; 
        }; 

これが変更されたコードでチェックボックスが削除され、これがタブプロシージャ全体を制御するコード全体です。

    $(document).ready(function() {

    //Default Action
    $(".tab_content").hide(); //Hide all content
    $("ul.tabs li").eq(<?php print "$eq_id";?>).addClass("active").show(); //Activate second tab
   $(".tab_content").eq(<?php print "$eq_id";?>).show(); //Show second tab content

    //On Click Event
    $("ul.tabs li").click(function() {

        var w = document.getElementsByTagName('input'); 
            for(var i = 0; i < w.length; i++){ 
                if(w[i].type='checkbox'){ 
                    w[i].checked = false; 

                }; 
            }; 

        $("ul.tabs li").removeClass("active"); //Remove any "active" class
        $(this).addClass("active"); //Add "active" class to selected tab
        $(".tab_content").hide(); //Hide all tab content
        var activeTab = $(this).find("a").attr("href"); //Find the rel attribute value to identify the active tab + content
        $(activeTab).fadeIn(); //Fade in the active content
        return false;
    });

});

ありとあらゆる助けをありがとう

4

3 に答える 3

2

jqueryを使用しているので

推奨される方法

$('input[type=checkbox]')

または2つの非推奨の方法

$('input:checkbox')
$(':checkbox')

また、次のステートメントでそれらをチェックボックスに変更しています

if(w[i].type='checkbox'){ // <-- you want == to compare and = to assign

jQueryを使用する場合は、セレクターのみが必要であり、ifステートメントをすべて一緒に削除できます。

$('input[type=checkbox]').prop('checked',false);  // <-- changes all checkboxes to unchecked

http://jsfiddle.net/wirey00/UFdza/

上記はjQuery1.6以降で機能するはずですが、まだ古いライブラリを使用している場合は、次を使用できます

$('input[type=checkbox]').attr('checked',false); 

http://jsfiddle.net/wirey00/UFdza/1/

編集 -

交換できます

$("ul.tabs li").click(function() {

    var w = document.getElementsByTagName('input'); 
        for(var i = 0; i < w.length; i++){ 
            if(w[i].type='checkbox'){ 
                w[i].checked = false; 
            }; 
        }; 

    $("ul.tabs li").removeClass("active"); //Remove any "active" class
    $(this).addClass("active"); //Add "active" class to selected tab
    $(".tab_content").hide(); //Hide all tab content
    var activeTab = $(this).find("a").attr("href"); //Find the rel attribute value to identify the active tab + content
    $(activeTab).fadeIn(); //Fade in the active content
    return false;
});

$("ul.tabs li").click(function() {        
    $('input[type=checkbox]').prop('checked',false);  // <-- changes all checkboxes to unchecked
    $("ul.tabs li").removeClass("active"); //Remove any "active" class
    $(this).addClass("active"); //Add "active" class to selected tab
    $(".tab_content").hide(); //Hide all tab content
    var activeTab = $(this).find("a").attr("href"); //Find the rel attribute value to identify the active tab + content
    $(activeTab).fadeIn(); //Fade in the active content
    return false;
});

はい、Raminsonが指摘したように、:checkboxセレクターは非推奨になりました。それらを使用することはお勧めしませんが、それでも機能します

于 2012-08-11T16:16:22.673 に答える
1

あなたの状態はif (w[i].type == "checkbox") {代わりにすべきではありませんif (w[i].type = "checkbox") {か?使用を比較している場合==

于 2012-08-11T18:09:00.230 に答える
0
$('input[type="checkbox"]').each(function(){
    $(this).removeAttr('checked');
});
于 2012-08-11T17:59:35.903 に答える