获取和分配Javascript模块模式中的表单元素值
我需要使用获取和分配Javascript模块模式中的表单元素值,javascript,Javascript,我需要使用模块模式访问表单中的所有元素。简言之,我希望避免重复代码,并仅使用单个模块进行组织 如何在不从模块调用匿名函数的情况下执行此操作: 不要这样写:FormData.LastName() 我只想让它看起来像这样:FormData.LastName 下面是我尝试过的一个例子: 'use strict'; FormData = (function() { var formElement = document.forms.signup; return {
模块模式
访问表单中的所有元素。简言之,我希望避免重复代码,并仅使用单个模块进行组织
如何在不从模块调用匿名函数的情况下执行此操作:
不要这样写:FormData.LastName()
我只想让它看起来像这样:FormData.LastName代码>
下面是我尝试过的一个例子:
'use strict';
FormData = (function() {
var formElement = document.forms.signup;
return {
LastName: function(){
return formElement.lName.value;
},
SendBtn: function(){
return formElement.submitSignupForm;
}
};
})();
调用模块并访问其内部对象值,而无需Global
和exposure
FormData.SendBtn().addEventListener('click', function(e){
document.getElementById('result').innerHTML = FormData.LastName();
e.preventDefault();
}, false);
另一个变化:
使用Object.defineProperty
示例:
更好的文档:
您可以为此定义getter/setter。当我实现上述代码时,我得到以下错误:uncaughttypeerror:Invalid属性。属性不能同时具有访问器和可写属性,也不能同时具有值,#
Yes查看文档。顺便说一下,这些配置已经默认设置好了,对吗?我也在阅读面向开发人员的专业JavaScriptNicholas Zakas。
那么可写文件阻止了变量被写入?这是一个好的开始,它的工作!万分感谢!!
'use strict';
FormData = (function() {
var formElement = document.forms.signup;
var LName = function(input){
return input.lName.value;
};
var SendBtn = function(input){
return input.submitSignupForm;
};
return {
LastName: LName(formElement),
SendBtn: SendBtn(formElement)
};
})();
FormData.SendBtn.addEventListener('click', function(e){
document.getElementById('result').innerHTML = FormData.LastName;
e.preventDefault();
}, false);
var Mod = (function(){
var module, formElement;
module = {};
formElement = document.forms.signup;
Object.defineProperty(module, 'LastName', {
get: function () {
return formElement.lName.value;
},
writable: false,
enumerable: true,
configurable: true
});
return module;
})();