1

使用 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();

我想念的是我认为在构造函数和用户输入之间的某个地方。如果我想创建一个新对象,我会写

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

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

4

5 回答 5

1

不需要构造函数

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
于 2013-03-15T13:06:17.760 回答
1

使用 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();
});

不完全确定您想在之后对对象做什么,但这会在提交函数的范围内创建它。

于 2013-03-15T13:09:47.127 回答
0

尝试:

var obj = {};

$("input").each(function() {
   var name = $(this).attr("name");
   obj.name = $(this).val();
});

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

于 2013-03-15T13:07:32.690 回答
0

不知道你为什么要这样做,但你可以使用方括号表示法来实现它。

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();
于 2013-03-15T13:10:04.590 回答
0

JavaScript 能够在 OOP 范式中工作。如果你真的需要一个自定义对象,你可以这样做:

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);
于 2013-03-15T13:17:38.253 回答