表格自动提交,无需点击

时间:2013-12-28 09:01:15

标签: jquery form-submit onclicklistener jqueryform

您好我正在使用下面的代码通过单击创建表单按钮

在div中动态创建表单
$('#'+id).append('<div id="FileUpload"><fieldset><legend>Upload File To Iseries Server</legend><form id="FileUploadForm" action="" method="post" enctype="multipart/form-data"><label for="fileName">Select File: </label><input id="fileName" type="file" name="files" size="30" multiple /><br/><input type="submit" name="UploadFile" value="Upload" id="FileUploadButton"/></form></fieldset></div>');

我想获得输入框的值,所以我添加了代码:

$("input[name=UploadFile]").live("click",function(){
            $("input[name=files]").change(function() {
                alert($(this).val());   
            });

        });

现在问题是我每次点击创建表单按钮时直接调用我上面提到的点击功能然后显示表单。现在,当我单击上传按钮时,它不会显示警报消息。它现在正在调试中单击事件。请帮帮我!感谢帮助!

1 个答案:

答案 0 :(得分:0)

动态创建"input[name=files]""input[name=UploadFile]"。您应该为它们创建委派的事件处理程序。

您的代码的另一个问题是,每次单击"input[name=files]"时都会为"input[name=UploadFile]"添加事件处理程序,这可能会导致添加多个事件处理程序的问题。

这一行:$("input[name=files]").change(function() {只是添加了事件处理程序,这就是你没有看到警报的原因

另请尝试使用$.on而不是直播,因为不推荐使用直播:

$(document).on("change","input[name=files]",function(){
    alert($(this).val());  
});

$(document).on("click","input[name=UploadFile]",function(){
            $("input[name=files]").trigger("change"); //trigger event instead of add event handler like in your code.
});