在输入类型复选框上使用 JQuery ReplaceWith

Using JQuery ReplaceWith on input type checkbox

我正在尝试将带有输入的 table 转换为 table 值。我创建了这个 javascript 函数,它适用于除带有类型复选框的输入之外的所有内容。

这是我当前的功能:

    function PopulateHidden() {

        $('#Units input').replaceWith(function () {
            return this.value;
        });
        $('#Units select').replaceWith(function () {
            return this.value;
        });

        var html = $("#Units").html();
        $('#<%=UnitTableHtml.ClientID%>').val(html);
    }

我已经尝试过此方法的各种版本:

        $(".chk").replaceWith(function () {
            alert(this.html());
            if (this.prop('checked') == true) {
                alert("YES");
                return "Yes";
            };
            return "No";
        });

但我一直将文本框的值设为 "on" 而不是 true/false。我希望该值为 Yes 或 No 但它没有进入 if 语句。为什么我无法将复选框的值作为布尔值获取?

这是我定义复选框的方式:

<input type="checkbox" class="chk" style="width:20px;height:20px;"/>

所有人都赞扬 Jasper,因为我用同样的建议构建了这个 fiddle:需要 $(this) 而不是 this

http://jsfiddle.net/o8bm0vxx/