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

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 に答える
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 に答える
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 に答える
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 に答える