清除文本框而不刷新页面

时间:2014-11-06 03:07:27

标签: javascript knockout.js

我希望我的文本框在用户保存数据时清除缓存。我希望页面中的对话框清除(重置)所有数据,而无需刷新页面。

我已经尝试将此代码放在javascript中

     _self.someValueHere("");

并且还尝试将此代码放在html中。

     onfocus="if(this.value=='A new value') this.value='';

仍然没有工作。

以下是我的HTML代码:

        <p>
            <label data-bind="text: key"></label><br/>
            <input type="text" data-bind="value: newInfo, valueUpdate:'afterkeydown'" style="width: 196px" />
            <button data-bind="click: addInfo" >Add</button>
            <br/>
            <select size=5 style="width:200px"
                data-bind="options: infos, value: selectedInfo">
            </select>
            <button data-bind="click: removeInfo">Remove selected</button>
        </p>

这是我的javascript

        _self.newInfo = ko.observable("");
        _self.selectedInfo = ko.observable();
        _self.infos = ko.observableArray();
        _self.addInfo = function() {
            if(_self.newInfo() != "") {
                var validateInput = inputChecker(_self.newInfo(), _self.nfield);
                if(validateInput == "") {
                    var is_unique = true;
                    $.each( _self.infos(), function( key, val ) {
                        if(val == _self.newInfo()) {
                            is_unique = false;
                            _self.newInfo("");
                            console.log("first");
                        }
                    });
                    if(is_unique) {
                        _self.infos.push( _self.newInfo() );
                        _self.newInfo("");
                        console.log("second");
                    } else {
                        alert("Duplicate entry");
                    }
                } else {
                    alert(validateInput);
                }
            } else {
                alert("Nothing to add");
            }
            return false;
            _self.newInfo("");
        };
        _self.removeInfo = function() {
            _self.infos.remove( _self.selectedInfo() );
        };
    }

1 个答案:

答案 0 :(得分:0)

你不能在return语句后执行代码,所以这里的第二行没有效果:

return false;
_self.newInfo("");

只需交换它们:

_self.newInfo("");
return false;