'book'文本字段不会触发sencha中的事件

时间:2015-09-01 08:20:09

标签: javascript html extjs sencha-architect

我有这段代码Ext.get('book').setValue('1');

  

注意:加载页面和书籍值设置为1.不在页面加载后   并将账面价值变更为1。

它将本书设置为值1.但它不会触发更改事件。有没有办法在页面加载后触发更改事件?

编辑: 在html脚本中,

<script..>
    $(document).ready(function () { 
        $("book").on("blur", function() {
           //calls other function
        }); // not called as blur is not invoked 
    }); 
</script>

<input id="book" type="book" value="" /><br />

在extjs中,

var panel = Ext.create('Ext.grid.Panel', {    
id: 'panel',
columns: [
    var bookid = "new book";
      Ext.Ajax.request({
        params: { bookid: bookid},
        function: function (response) {
           Ext.get('book').setValue(bookid);
           // after setValue, book will receive a change event(e.g .blur in html) and changes other functions 
        }
      });
]
});

1 个答案:

答案 0 :(得分:0)

您的ajax请求似乎格式不正确,function: function语句将是您在以下语句中正常放置success: function的位置:

Ext.Ajax.request({
    url: 'insert-your-http-endpoint-here',
    params: {
        bookid: bookid
    },
    success: function(response){
        debugger; // -> setting this statement will show that you enter the success statement
        Ext.get('book').setValue(bookid);
    },
    failure: function(response, opts) {
        // something went wrong with your request
        console.log('server-side failure with status code ' + response.status);
    }
});

有关如何使用ExtJS或特定功能的更多信息,您可以在文档中找到(检查您是否有正确的版本,可以找到)here

从上面的代码中,您不需要debugger语句,但如果您想检查是否真的进入此代码块,它会有所帮助,以及当您尝试执行此操作时会发生什么设定值。

另外,当某些内容无法正常工作时,请不要忘记检查控制台输出,可能是控制台日志中有明确指出的问题