2017-02-14 4 views
0

このJavaScriptは、htmlフォーム入力のラベルにクラスselectedを削除または追加します。複数の入力グループがある場合、クリックされた要素だけでこのJavascriptをどのようにトリガーしますか?クリックしたオブジェクトのみを実行するJavaScript

window.addEvent('domready', function() { 
    $$('input').set({ 
    events: { 
     change: function(el) { 
     $$('label').removeClass('selected'); 
     this.getParent('label').addClass('selected'); 
     } 
    } 
    }); 
}); 

HTML

<input name="state" type="radio" /> 
<label class="nostate selected">x 
<input name="state" type="radio" checked /> 
</label> 
<input name="state" type="radio" /> 
<br> 
<input name="state1" type="radio" /> 
<label class="nostate selected">x 
<input name="state1" type="radio" checked /> 
</label> 
<input name="state1" type="radio" /> 

CSS

<style> 
.nostate{ 
    color:grey; 
} 

label.nostate.selected { 
    background-color:white; 
    color: white; 
} 
</style> 
+0

この角度は? –

+1

jqueryjqueryのように見えます。 –

+0

ページの上部にあるスクリプトタグ内にあるかどうかは不明です。ラベルの色が変わります。 – denski

答えて

1

あなたはこのような何かを探しています/

<form action="form_action.asp"> 
    <input type="checkbox" name="coffee" value="cream">With cream<br> 
    <input type="checkbox" name="coffee" value="sugar">With sugar<br> 
    <br> 
    <input type="button" onclick="myFunction()" value="Send order"> 
    <br><br> 
    <input type="text" id="order" size="50"> 
    <input type="submit" value="Submit"> 
    </form> 

javascript関数として:?

 function check() { 
    document.getElementById("myCheck").checked = true; 
    } 

    function uncheck() { 
    document.getElementById("myCheck").checked = false; 
    } 
1

まず、あなたはラベルの各入力とfor属性のIDが必要になります。

<label class="nostate selected" for="input1">x 
<input name="state" id="input`" type="radio" checked /> 

その後、change機能で、あなたは$を(行うことによって、そのイベントをトリガjQueryの要素を得ることができますこの)、そのinputタグだろう、とあなたはそのようにした後ずっとこの作品貼り付け、読書や編集を切断

change: function(el) { 
     var $input = $$(this); 
     var id = $input.attr('id'); 
     $input.removeClass('selected'); // remove the selected class from input 
     $$('label[for=#' + id + ']').addClass('selected'); // add the selected class to the label 
     } 
+0

これは私が探しているものに非常に近いものですが、コードペンで動作させることはできません。なぜなら、私には不正な '('があります。 codepen.io/denden/pen/dNrWEO – denski

+0

興味深いことに、 'id =" input \ '" 'で入力したバックティックの目的は何ですか? – denski

+0

これを試してみてくださいhttp://codepen.io/azizj1/pen/XpGzJW?editors = 1111 –

0

を行うことによって、入力タグのラベルを得ることができます。もっと簡単な方法があるかどうかを知りたいです。

$(function() { 
    $('input:radio').on('click', function() { 
    var name = $(this).attr("name"); 
    if($('input[name="'+name+'"]:eq(1)')[0].checked){ 
     $('label[name="'+name+'"]').addClass('arrowup'); 
    } 
    else 
    { 
     $('label[name="'+name+'"]').removeClass('arrowup'); 
    } 
}); 
}); 
関連する問題