修改此代码以在window.load而不是表单提交上运行

时间:2013-05-05 03:22:05

标签: javascript jquery

我对网络开发很陌生,虽然我已经把我的脑袋缠绕在javascript上,试图修改一些我在jquery上写的github用于个人用途的代码。基本上现在代码是从输入表单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));
    }
});

1 个答案:

答案 0 :(得分:0)

所以我基本上解决了我自己长期啰嗦的问题所有我想要的是改变这一行

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

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

无论如何,没有人回答,因为它开始让我真正学习一些jquery语法,这是我现在已经提出的一些问题:)