Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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对象_Javascript_Jquery - Fatal编程技术网

创建具有用户定义属性的新javascript对象

创建具有用户定义属性的新javascript对象,javascript,jquery,Javascript,Jquery,使用Javascript和jquery,我想编写的代码执行以下操作:当用户填写html表单时,将使用用户提供的属性自动创建一个新对象。我有一个构造函数 function object (prop1, prop2, prop3) { this.prop1 = prop1; this.prop2 = prop2; this.prop3 = prop3; } 我使用jquery val()获取用户输入,如下所示: object.prop1 = $('i

使用Javascript和jquery,我想编写的代码执行以下操作:当用户填写html表单时,将使用用户提供的属性自动创建一个新对象。我有一个构造函数

function object (prop1, prop2, prop3) {
        this.prop1 = prop1;
        this.prop2 = prop2;
        this.prop3 = prop3;
}
我使用jquery val()获取用户输入,如下所示:

object.prop1 = $('input[name = "input1"]').val();
object.prop2 = $('input[name = "input2"]').val();
object.prop2 = $('input[name = "input3"]').val();
var Apple = function Apple(p1, p2, p3) {
    this.p1 = p1;
    this.p2 = p2;
    this.p3 = p3;
};

//...
a = $('input[name = "input1"]').val();
b = $('input[name = "input2"]').val();
c = $('input[name = "input3"]').val();

var obj = new Apple(a,b,c);
我错过的是我认为在构造函数和用户输入之间的某个地方。如果我想创建一个新对象,我会写

 apple = new object (prop1, prop2, prop3);

我希望代码在用户每次填写表单时自动创建一个新对象。我试着用for循环来做,但没有成功。我是一个完全的初学者,所以我想我错过了一些非常基本的东西。有什么建议吗?

不需要构造函数

var obj = {};
object.prop1 = $('input[name = "input1"]').val();
object.prop2 = $('input[name = "input2"]').val();
object.prop2 = $('input[name = "input3"]').val();

//Use obj for further processing
尝试:


然后通过以下方式访问:
obj.input1

使用jQuery将onsubmit事件绑定到表单

$("[name='FORM_NAME']").submit(function() {
  var newObj = new object();
  newObj.prop1 = $('input[name = "input1"]').val();
  newObj.prop2 = $('input[name = "input2"]').val();
  newObj.prop2 = $('input[name = "input3"]').val();
});

不完全确定之后要对对象执行什么操作,但这将在submit函数的作用域中创建它

不确定为什么要这样做,但可以使用方括号表示法来实现

function x(a, b) {
    this[a] = a;
    this[b] = b;
    this.list = function() {
       for(var i in this) {
           console.log(i+': '+this[i]);
       }
    }
}
var l = new x('hello', 'world');
l.list();

JavaScript能够在OOP范例中工作。如果您真正需要的是自定义对象,您可以这样做:

object.prop1 = $('input[name = "input1"]').val();
object.prop2 = $('input[name = "input2"]').val();
object.prop2 = $('input[name = "input3"]').val();
var Apple = function Apple(p1, p2, p3) {
    this.p1 = p1;
    this.p2 = p2;
    this.p3 = p3;
};

//...
a = $('input[name = "input1"]').val();
b = $('input[name = "input2"]').val();
c = $('input[name = "input3"]').val();

var obj = new Apple(a,b,c);

为什么不干脆
apple={prop1:prop1,prop2:prop2,prop3:prop3}?该对象应该存在于何处?JS对象存在于浏览器中,因此您的问题只有在您希望单个用户多次填写表单时才有意义(在一个浏览器会话中)。表单提交中是否缺少事件处理程序?在这种情况下,您不需要for循环。它将由单个用户多次填写,因此应该存在于一个浏览器会话中。所以,如果我按照Arun P Johny说的做,我以后怎么能引用这个对象呢?如果用户创建了三个或四个对象,我以后如何引用它们?我想这就是我想要的,即使我无法正确解释,所以谢谢!也许你的意思是
obj[name]=…