jQuery表单提交事件

时间:2011-08-13 22:40:43

标签: jquery

我有一张我正在处理的照片上传表单,其工作原理如下:

  1. 点击“上传照片”按钮。 jQuery检测到点击并触发点击事件到表单中隐藏的“文件”字段,这会打开一个对话框来搜索文件。
  2. 当用户选择文件时,会在隐藏文件字段上检测到更改事件并触发表单提交。这是代码:

    // on photo upload button click:
    $("input[name=PhotoUpload]").click(function() {
        $("input[name=Photo]").click();
    });
    
    // on photo upload:
    $("input[name=Photo]").change(function() {
        $("form[name=MediaUpload]").submit();
    });
    

    和表格:

    <form name="MediaUpload" method="post" action="/postad/media.cfm" target="Media" enctype="multipart/form-data">
        <input type="button" name="PhotoUpload" value="Upload Photo">
        <input type="file" name="Photo" size="30" style="visibility:hidden;">
    </form>
    
  3. 这在Chrome和FireFox中效果很好,但在任何版本的IE中都没有运气。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我建议稍微尝试一下:

// on photo upload button click:
$("input[name=PhotoUpload]").click(function() {
    $("#your_dialog").dialog("open");
});

//Remove the `.change` function.
// add the form submit line below after the dialog code changes the `Photo` field
$("form[name=MediaUpload]").submit();

很容易将IE与javascript混淆。如果它遇到了消化不良的东西,就会停止处理js。