È possibile utilizzare Attribute Starts With Selector di impegnare la manifestazione.
$("[id^=input]").on("click", function() {
var currentChk = $(this);
var propCheck = currentChk.prop("checked");
if (propCheck) {
debugger;
var valChk = $("#[email protected]").val();
alert(valChk);
}
});
come ID di entrambi etichetta e input-casella inizia con l'evento click 'ingresso' legherà ad entrambi. Se si desidera limitare è possibile aggiungere il tipo al selettore, ad esempio si desidera solo sulla casella di controllo è possibile modificare il selettore come sotto.
$("input[id^=input]").on("click", function() {...
o
$(":checkbox[id^=input]").on("click", function() {...
Se si assegna una classe per il controllo che si desidera allegare evento quindi è possibile utilizzare selettore di classe per associare l'evento.
@for (int i = 0; i < searchList.Count;i++)
{
<label for="[email protected]"><input type="checkbox" class="chk-class" id="[email protected]"/>@searchList[i] </label>
}
$(".chk-class").on("click", function() {...
Modifica Come Mohamed-Yousef ha sottolineato che si dovrebbe usare preferibilmente currentChk
o $(this)
invece di $("#[email protected]")
nella dichiarazione $("#[email protected]").val();
come @i non sarà il valore sostituito da C# ciclo, ma verrà aggiunto come stringa letterale.
Come ulteriore nota è possibile utilizzare JavaScript native, ove possibile ed adatto per esempio userei this.checked al posto di currentChk.prop ("controllato") per ottenere la migliore performance, la leggibilità e la semplicità.
$("[id^=input]").on("click", function() {
if (this.checked)
{
//your code
}
else
{
//your code
}
});
io sono totalmente confuso! vuoi generare etichette e input usando jQuery per loop? –