Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript EXTJS传递表单字段并为控制器中的变量赋值_Javascript_Extjs5 - Fatal编程技术网

Javascript EXTJS传递表单字段并为控制器中的变量赋值

Javascript EXTJS传递表单字段并为控制器中的变量赋值,javascript,extjs5,Javascript,Extjs5,我正在尝试创建一个登录表单,它模拟对服务器的调用并验证用户信息 这是我的Login.js代码。这是我创建的表单: Ext.define("ies.view.login.Login",{ extend: 'Ext.window.Window', xtype: 'login', requires: [ 'ies.view.login.LoginController', 'Ext.form.Panel' ], controller: 'login', bodyPadding

我正在尝试创建一个登录表单,它模拟对服务器的调用并验证用户信息

这是我的Login.js代码。这是我创建的表单:

Ext.define("ies.view.login.Login",{
extend: 'Ext.window.Window',
    xtype: 'login',

requires: [
    'ies.view.login.LoginController',
    'Ext.form.Panel'
],

controller: 'login',
bodyPadding: 60,
draggable: false,
title: 'Login Window',
closable: false,
autoShow: true,

items: {
    xtype: 'form',
    reference: 'form',
    itemId: 'LogInForm',
    method: 'post',
    items: [{
        xtype: 'textfield',
        name: 'username',
        fieldLabel: 'Username',
        itemId: 'username',
        allowBlank: false
    }, {
        xtype: 'textfield',
        name: 'password',
        itemId: 'passwords',
        inputType: 'password',
        fieldLabel: 'Password',
        allowBlank: false
    }, {
        xtype: 'displayfield',
        hideEmptyLabel: false,
        value: 'Enter any non-blank password'
    }],
    buttons: [{
        text: 'Login',
        formBind: true,
        itemId: 'submit',
        listeners: {
            click: 'onLoginClick'
        }
    }],


}
});
这是我的控制器代码:

Ext.define('ies.view.login.LoginController', {
    extend: 'Ext.app.ViewController',
    alias: 'controller.login',
    onLoginClick: function(){
        //var username = form.down('textfield[name=username]').getValue();
        //var password = form.down('textfield[name=password]').getValue();
        //get form field values
        var username = this.lookupReference('username');
        var password = this.lookupReference('password');
        console.log(username + ' ' + password);
        // This would be the ideal location to verify the user's credentials via 
        // a server-side lookup. We'll just move forward for the sake of this example.

/********************************************/
if ((username === 'carol' || username === 'denise' || username === 'coley' || username === 'yegappan' || username === 'julie' || username === 'dawn' || username === 'yvonne' || username === 'chuck' || username === 'belinda' || username === 'atlante' || username === 'blake' || username === 'ernie' || username === 'Patrick.Dwyer') && password === 'password1'){
/********************************************/


        // Set the localStorage value to true
        localStorage.setItem("TutorialLoggedIn", true);
        console.log("Atuthenticated");

        // Remove Login Window
        this.getView().destroy();

        // Add the main view to the viewport
        Ext.widget('app-main');
    } else {
        document.getElementById("displayfield-1014-inputEl").innerHTML = "Authentication Failed";
        console.log("Not authenticated");
    }
    }
});
我不知道如何传递表单字段并将它们分配给控制器代码中的用户名和密码变量。我真的很感激所有的帮助。谢谢


我使用的是extjsv5.1

名称和itemId在这里不相关。相反,请将reference属性与lookupReference结合使用。

嘿,感谢您的快速回复。我将该引用属性添加到以用户名和密码作为引用的字段中,console.log消息为:[object][object]。我错过什么了吗?再次感谢!好吧,看起来我错过了getValue;在这个.lookupReference'password'的末尾;。完整代码:var password=this.lookupReference'password'.getValue;再次感谢你的帮助!