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

时间:2015-01-13 23:48:10

标签: javascript jquery checkbox

我正在尝试将带有输入的表转换为值表。我创建了这个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;"/>

1 个答案:

答案 0 :(得分:2)

所有人都赞扬贾斯珀,因为我正在用同样的建议建立这个小提琴:需要$(this)而不是this

http://jsfiddle.net/o8bm0vxx/