Javascript 淘汰js valueupdate';afterkeydown';事件更改不起作用

Javascript 淘汰js valueupdate';afterkeydown';事件更改不起作用,javascript,knockout.js,event-handling,Javascript,Knockout.js,Event Handling,我在一个表单上使用Knockout JS,该表单用于计算产品的定价 我有一个在表单提交时调用的函数,用于计算定价。对于文本输入字段,我希望在用户开始更改值时调用定价函数。目前,这只在我点击文本输入字段外的时候起作用,所以不能立即点击keypress/keyup,这正是我想要实现的 我很确定我的代码中有东西需要修复 输入字段的HTML: <div class="form-group"> <label>Number of Pages</label>

我在一个表单上使用Knockout JS,该表单用于计算产品的定价

我有一个在表单提交时调用的函数,用于计算定价。对于文本输入字段,我希望在用户开始更改值时调用定价函数。目前,这只在我点击文本输入字段外的时候起作用,所以不能立即点击keypress/keyup,这正是我想要实现的

我很确定我的代码中有东西需要修复

输入字段的HTML:

<div class="form-group">
    <label>Number of Pages</label>
    <input data-bind="value : pages, valueUpdate: ['afterkeydown'], event: { change: onSubmit }" >
</div>
self.pages = ko.observable("10");

self.onSubmit = function () {

    self.response("<div class='priceLoading'>Loading</div>");

    var servURL = "http://prices.mysite.com/getpricing/"
        + ko.utils.unwrapObservable(self.selectedCategoryValue) + "/"
        + self.pages() + "/"
        + self.copies() 

    $.get(servURL, function (response) {
        self.response(response.PriceFormatted);
    })
}

页数
Javascript:

<div class="form-group">
    <label>Number of Pages</label>
    <input data-bind="value : pages, valueUpdate: ['afterkeydown'], event: { change: onSubmit }" >
</div>
self.pages = ko.observable("10");

self.onSubmit = function () {

    self.response("<div class='priceLoading'>Loading</div>");

    var servURL = "http://prices.mysite.com/getpricing/"
        + ko.utils.unwrapObservable(self.selectedCategoryValue) + "/"
        + self.pages() + "/"
        + self.copies() 

    $.get(servURL, function (response) {
        self.response(response.PriceFormatted);
    })
}
self.pages=ko.可观察(“10”);
self.onSubmit=函数(){
自我反应(“加载”);
var servURL=”http://prices.mysite.com/getpricing/"
+ko.utils.unwrapobbservable(自选择类别值)+“/”
+self.pages()+“/”
+self.copies()
$.get(servURL,函数(响应){
self.response(response.PriceFormatted);
})
}
事件更改时调用的onSubmit函数从服务中获取数据xml数据并将其写入表单

非常感谢您的帮助

您可以使用

<input data-bind="textInput : pages, event: { keyup: onSubmit }" >

您可以使用

<input data-bind="textInput : pages, event: { keyup: onSubmit }" >

您可以使用

<input data-bind="textInput : pages, event: { keyup: onSubmit }" >

您可以使用

<input data-bind="textInput : pages, event: { keyup: onSubmit }" >

如果您希望在每次更改变量时提交,那么将onsubmit函数订阅到该变量,而不是使用单独的事件,这就更有意义了

var self={};
self.pages=ko.可观察(“10”);
自我反应=可观察();
self.copies=ko.可观察(“5”);
self.pages.subscribe(函数(newValue){
自我反应(“加载”);
var servURL=”http://prices.mysite.com/getpricing/“+ko.utils.unwrapObservable(self.selectedCategoryValue)+”/“+self.pages()+”/“+self.copies()
setTimeout(函数(){
self.response(“为“+newValue”获取);
}, 500);
});
ko.应用绑定(self)

页数

如果您希望在每次更改变量时提交,那么将onsubmit函数订阅到该变量,而不是使用单独的事件,这就更有意义了

var self={};
self.pages=ko.可观察(“10”);
自我反应=可观察();
self.copies=ko.可观察(“5”);
self.pages.subscribe(函数(newValue){
自我反应(“加载”);
var servURL=”http://prices.mysite.com/getpricing/“+ko.utils.unwrapObservable(self.selectedCategoryValue)+”/“+self.pages()+”/“+self.copies()
setTimeout(函数(){
self.response(“为“+newValue”获取);
}, 500);
});
ko.应用绑定(self)

页数

如果您希望在每次更改变量时提交,那么将onsubmit函数订阅到该变量,而不是使用单独的事件,这就更有意义了

var self={};
self.pages=ko.可观察(“10”);
自我反应=可观察();
self.copies=ko.可观察(“5”);
self.pages.subscribe(函数(newValue){
自我反应(“加载”);
var servURL=”http://prices.mysite.com/getpricing/“+ko.utils.unwrapObservable(self.selectedCategoryValue)+”/“+self.pages()+”/“+self.copies()
setTimeout(函数(){
self.response(“为“+newValue”获取);
}, 500);
});
ko.应用绑定(self)

页数

如果您希望在每次更改变量时提交,那么将onsubmit函数订阅到该变量,而不是使用单独的事件,这就更有意义了

var self={};
self.pages=ko.可观察(“10”);
自我反应=可观察();
self.copies=ko.可观察(“5”);
self.pages.subscribe(函数(newValue){
自我反应(“加载”);
var servURL=”http://prices.mysite.com/getpricing/“+ko.utils.unwrapObservable(self.selectedCategoryValue)+”/“+self.pages()+”/“+self.copies()
setTimeout(函数(){
self.response(“为“+newValue”获取);
}, 500);
});
ko.应用绑定(self)

页数

您是否尝试过移除“afterkeydown”周围的支架?我想它是在寻找字符串,而你没有给出。删除括号,但这似乎没有什么区别。你是否尝试删除“afterkeydown”周围的括号?我想它是在寻找字符串,而你没有给出。删除括号,但这似乎没有什么区别。你是否尝试删除“afterkeydown”周围的括号?我想它是在寻找字符串,而你没有给出。删除括号,但这似乎没有什么区别。你是否尝试删除“afterkeydown”周围的括号?我想它是在找绳子,而你没有给它。去掉括号,但这似乎没有什么区别。