1

入力要素の値を確認できるように、backbone.js の View オブジェクトの現在のテンプレートからすべての入力要素を取得する方法。

/*template*/

<script id="emptemplate" type="text/template">
<input id="name" value="{name}"/>
<input id="address" value="{address}"/>
<input id="sex" value="{sed}"/>
<footer>
   <button id="save">save</button>
</footer>
</script>

/*javascript*/

var EmployeeView = Backbone.View.extend({
  ...
  render:function(){
  ....
  },
  events:{
    "click #save": "saveData"
  },
  saveData: function (e) {
        var Data = [];
        $('input').each(function (value, key) {
            /*my problem here:
             cannot able to get the value of input element!
             */
            var v = value;
            var k = key;
        });
    }
  });
4

2 に答える 2

2

レンダリング関数を次のように更新します

render: function(){
       var template = _.template( $("#emptemplate").html(), {} );
       this.$el.html( template );
}

次に試してください...ビューのelにテンプレートが追加され、バインドしてアクションを実行できます

于 2013-04-08T05:49:11.243 に答える
1

現在のビューのすべての入力要素を反復処理して、そこから値を取得するという解決策を考え出しました。ユーザーが保存ボタンをクリックしたときの「saveData」イベントハンドラーでは、次のようになります。

saveData:function(){
var data=[];
this.$el.find('input').each(function(){
$input=$(this);
//build the array of [key, value]
data[$input.attr('id')] = $input.val();
}
});
于 2013-04-09T18:33:06.027 に答える