从for循环中检索值到jquery

时间:2015-05-07 05:11:56

标签: javascript c# jquery

如何从@for循环中检索值到jquery .. for循环中的每个值都应该有不同的id,而jquery应该得到每个单独的id .... 我的循环,

@for (int i = 0; i < searchList.Count;i++ )
{
    <label for="input@i"><input type="checkbox" id="input@i"/>@searchList[i]   </label>
}

我的jquery没有帮助,

  $("#input@i").on("click", function () {
    var currentChk = $(this);
    var propCheck = currentChk.prop("checked");
    if (propCheck) {
        debugger;
        var valChk = $("#input@i").val();
        alert(valChk);
    }
});

提前致谢...

3 个答案:

答案 0 :(得分:2)

您可以使用Attribute Starts With Selector绑定事件。

$("[id^=input]").on("click", function () {
    var currentChk = $(this);
    var propCheck = currentChk.prop("checked");
    if (propCheck) {
        debugger;
        var valChk = $("#input@i").val();
        alert(valChk);
    }
});

由于标签和输入复选框的ID都以&#39;输入&#39;开头。 click事件将绑定到它们。如果你想限制你可以添加类型到选择器,例如你只想复选框,你可以改变选择器。

$("input[id^=input]").on("click", function () {...

$(":checkbox[id^=input]").on("click", function () {...

如果将类指定给要附加事件的控件,则可以使用类选择器绑定事件。

@for (int i = 0; i < searchList.Count;i++ )
{
    <label for="input@i"><input type="checkbox" class="chk-class" id="input@i"/>@searchList[i]   </label>
}


$(".chk-class").on("click", function () {...

修改正如Mohamed-Yousef所指出的,您应该在currentChk语句中使用$(this)$("#input@i")代替$("#input@i").val();,因为@i不会是C#循环的替换值,但它将作为字符串文字添加。

作为额外的 note ,您可以尽可能使用本机javascript并且合适,例如我会使用this.checked而不是currentChk.prop(&#34; checked&#34;)来获得更好的性能,可读性和简单性。

$("[id^=input]").on("click", function () {   
    if (this.checked) 
    {
        //your code
    }
    else 
    {
        //your code
    }    
});

答案 1 :(得分:0)

如果您想为所有输入触发onclick

$("input").click(function () {
    var currentChk = $(this);
    var propCheck = currentChk.prop("checked");
    if (propCheck) {
        var valChk = "Id:" + this.id + " Value:" + this.value;
        alert(valChk);
    }
});

答案 2 :(得分:0)

    $("input:checkbox [id^=input]").click(function(){
         if ($(this).is(":checked")) {
             var valChk = $("this").val();
             alert(valChk);
         }
    });

您可以使用另一个选项