2016-11-02 7 views
0

私は解決策を探していたが、私はこのコード持っている任意のJQueryで配列としてのIDを持つフォームからのみ数値を取得できますか?

を見つけられませんでした:

<form name="frm_hs100"> 
    <input id="hs100[1]" name="hs100[1]" type="checkbox"> 
    <input id="hs100[2]" name="hs100[2]" type="checkbox"> 
</form> 

$('[name^=hs100]').click(function() { 
    if ($(event.target).is(":checked")){ 
     //true 
    } 
    else { 
     //false 
     } 
    console.log(event.target.id); 
    }); 

はconsole.logプリント "HS100 [1]" が、どのように私は#1または#を得るのですか2クリックしたチェックボックスに基づいて?

+0

string.replaceを使用しますか? –

答えて

1

使用クラスとデータ属性

$('.my_box').on('click', function() { 
 
    if (this.checked){ 
 
     //true 
 
    } else { 
 
     //false 
 
    } 
 
    console.log($(this).data('value')); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form name="frm_hs100"> 
 
    <input id="hs100[1]" class="my_box" data-value="1" name="hs100[1]" type="checkbox"> 
 
    <input id="hs100[2]" class="my_box" data-value="2" name="hs100[2]" type="checkbox"> 
 
</form>

+0

素晴らしい、見た目のデータ値は私のための最良の選択肢です。多くの感謝 – ondrej

1

IDは常に、あなたは、単にそれらの文字を剥ぎ取ると置き換えることができます「HS100ので始まり[」で終わる「]」になる場合それらには空白があります。

$('[name^=hs100]').click(function() { 
if ($(event.target).is(":checked")){ 
    //true 
} 
else { 
    //false 
    } 
var $consolePrint = event.target.id.replace('hs100[','').replace(']',''); 
console.log($consolePrint); 
}); 

読みやすいように、印刷された数値を変数にしました。

チェックボックスをオンにしているかどうかにかかわらずコンソールログに出力されていたことに気付きました。

+0

ありがとう、これはまた良い解決策です。はい、私はすべてのチェックボックスをクリックするたびにトリガーが必要です – ondrej

関連する問題