0

我对 Web 开发还很陌生,虽然我已经把头放在了 javascript 上,但我试图修改一些我在 github 上抓取的代码,这些代码是用 jquery 编写的,供我个人使用。基本上现在代码是从输入表单执行的,但是我计划在将代码发送到客户端执行之前用onsubmit我的服务器上的 php 填写表单数据,所以我想修改下面的代码以运行window.load. 我已经将需要修改的内容从几百行代码缩小到render: function(){下面代码块中的某个地方,但我不确定如何准确地执行此操作并将输入正确传递给应用程序中的其余函数

var InputView = Backbone.View.extend({
    initialize: function() {
        _.bindAll(this, 'create');
        this.template = _.template($('#input_template').html());
    },

    render: function() {
        this.$el.html(this.template({}));
        this.$el.find('form').submit(_.bind(function(event) {
             window.location = '#' + this.$el.find('input').val();
        }, this));
        this.$el.find('#create').click(this.create);
        this.$el.find('#create').on('click', this.create, this);
        return this;
    },

基本上我只需要知道如何正确绑定this.$el.find('input').val();到 php echo ......对于外包感到抱歉,但我并不真正了解所有这些代码中到底发生了什么,所以任何帮助都将不胜感激

这是InputView功能的其余部分,以防万一它是相关的,但我不认为它是

    create: function(event) {
        if(this.$el.find('#create').hasClass('disabled')) return;
        var button = this.$el.find('#create');
        button.addClass('disabled');
        event.preventDefault();
        var product = 'Torque';

        var btapp = new Btapp;
        btapp.connect({
            queries: [['btapp', 'create'], ['btapp', 'browseforfiles']],
            product: product,
            poll_frequency: 500
        });


        var status = new Backbone.Model({
            btapp: btapp,
            product: btapp.get('product'),
            status: 'uninitialized'
        });

        var status = new StatusView({model: status});
        $('.toolbox').append(status.render().el);

        var browse_ready = function() {
            btapp.off('add:bt:browseforfiles', browse_ready);

            btapp.trigger('input:waiting_for_file_selection');
            btapp.browseforfiles(function(files) {
                var files = _.values(files);
                if(files.length === 0) {
                    btapp.trigger('input:no_files_selected');
                    setTimeout(function() {
                        btapp.disconnect();
                        status.destroy();
                        button.removeClass('disabled');
                    }, 3000);
                    return;
                }
                var create_callback = function(data) {
                    btapp.disconnect();
                    btapp.trigger('input:torrent_created');
                    setTimeout(_.bind(btapp.trigger, btapp, 'input:redirecting'), 1000);
                    setTimeout(function() {
                        status.destroy();
                        window.location = '#' + data;
                    }, 3000);
                }

                var torrent_name = create_torrent_filename(files);
                console.log('btapp.create(' + torrent_name + ', ' + JSON.stringify(files) + ')');
                btapp.create(torrent_name, files, create_callback);
                btapp.trigger('input:creating_torrent');
            });
        };
        btapp.on('add:bt:browseforfiles', browse_ready);
        btapp.on('all', _.bind(console.log, console));
    }
});
4

1 回答 1

0

所以我基本上解决了我自己冗长的问题,我一直在寻找的是改变这条线

this.$el.find('form').submit(_.bind(function(event) {

this.$el.ready(_.bind(function(event) {

无论如何,可能没有人回答,因为它让我开始真正学习一些我已经投入很长时间的 jquery 语法:)

于 2013-05-05T04:16:04.310 回答