通过textbox knockoutjs的id / name获取输入

时间:2018-01-16 18:12:31

标签: javascript jquery knockout.js

我有一个输入textarea如下:

<textarea data-bind="value: $data.text, attr: { name: 'Data[' + $index() + '].Text', id: 'Data[' + $index() + '].Input'}" name="Data[1].Text" id="Data[1].Text"></textarea>

单击按钮,我想获取输入数据的textarea的id。 click事件位于knockoutJS代码中。也可以有多个textarea。

如何在knockout js代码中获取id。感谢

1 个答案:

答案 0 :(得分:0)

我假设你想要一个列表(因为可能有多个textareas)。您可以使用按钮上的单击绑定并使用jQuery获取所有textareas。

<p>Text area 1 <textarea id="login" data-bind="value: userName" ></textarea></p>
<p>Text area 2 <textarea  id="pwd"  type="password" data-bind="value: userPassword" ></textarea></p>

<button data-bind="click: getIdList"> click me </button>

<script>
    function viewModel() {
        var self = this;
        this.userName = ko.observable("");    
        this.userPassword = ko.observable(""); 
        this.getIdList = function() {
            var textAreaList = $("textarea");
            var idList = "";
            textAreaList.each(function( key, element ) {
                if(element.value !== "")
                    idList += element.getAttribute("id") + ",";
            });
            return idList.slice(0, -1);
        };
    }
    var myViewModel = new viewModel();
    ko.applyBindings(myViewModel);
</script>