繁体   English   中英

如何创建带有函数的按钮,然后使用jQuery提交按钮?

[英]How do I create a button with a function, then submit it, with jQuery?

我正在使用以下代码在页面上添加按钮

$("#myDiv").html("<button id='fileUpload'>Upload</button>");

然后,我在按钮上创建一个Ajax Upload实例。

var button = $('#fileUpload'), interval;
new AjaxUpload(button, {
    action: '/upload.ashx',
    name: 'myfile',
    onSubmit: function(file, ext) {
        button.text('Uploading');
        this.disable();

        // Uploding -> Uploading. -> Uploading...
        interval = window.setInterval(function() {
            var text = button.text();
            if (text.length < 13) {
                button.text(text + '.');
            } else {
                button.text('Uploading');
            }
        }, 200);
    },
    onComplete: function(file, response) {
        button.text('Upload');
        window.clearInterval(interval);                
    }
});   

我要做的是将按钮添加到页面,然后模拟自动单击它。 我将如何去做呢?

更新资料

该代码现在显示为:

$("#myDiv").html("<button id='fileUpload'>Upload</button>");
var button = $('#fileUpload'), interval;
new AjaxUpload(button, {
    action: '/upload.ashx',
    name: 'myfile',
    onSubmit: function(file, ext) {
        button.text('Uploading');
        this.disable();

        // Uploding -> Uploading. -> Uploading...
        interval = window.setInterval(function() {
            var text = button.text();
            if (text.length < 13) {
                button.text(text + '.');
            } else {
                button.text('Uploading');
            }
        }, 200);
    },
    onComplete: function(file, response) {
        button.text('Upload');
        window.clearInterval(interval);                
    }
});
$('#fileUpload').click();

.click事件似乎没有触发。 它是在代码中达到的,但是什么也不做...

**更新**

$('#fileUpload').click();

需要是

 $('input').click(); 

请检查接受的答案以了解原因。

我要做的是将按钮添加到页面,然后模拟自动单击它。 我将如何去做呢?

简短的答案是您不会。

长答案:

首先,您需要了解AJAX上传的工作原理。

插件会在您提供的按钮上方创建不可见的文件输入,因此,当用户单击您的按钮时,将显示普通文件选择窗口。 用户选择文件后,插件会提交包含文件输入到iframe的表单。 因此,这不是真正的ajax上传,但会带来相同的用户体验。

这里有两件事:

  1. fileUpload不是实际的文件输入

  2. 通常,出于安全原因,在现代浏览器中无法以编程方式单击/设置<input type =“ file”>元素。

您实际上在按钮上没有click处理程序,因此什么也没有发生。

只需走

$('#fileUpload').click();

您可以像这样在按钮上调用点击处理程序:

$('#fileUpload').click();

您已经处理过将其添加到页面中。

$('body').append('<a href="somepage.ashx" id="send">Go</a>').find('#send').click();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM