Jquery表单没有提交,或者没有提交的证据

时间:2013-08-07 07:26:06

标签: jquery

我正在尝试使用JQuery提交Ajax表单,但无法发现问题:

<script type="text/javascript">
                $(document).ready(function()
                {

                    $('#photoimg').live('change', function()
                    {
                        $("#emailpreviewloader").html('');
                        $("#emailpreviewloader").html('<img width="180" src="/loader.gif" alt="Uploading...."/>');

                        $('#myImageForm').ajaxForm(function() {
                            alert("Thank you for your comment!");
                        });

                        alert("about to submit");
                        $('form#myImageForm').submit();
                        alert("submitted");
                    });
                });
            </script>

两个警报都会触发:“即将提交”和“已提交”,但感谢您的评论永远不会触发。

知道出了什么问题吗?

编辑:

表单代码:

<form id="myImageForm" method="post" enctype="multipart/form-data" action="/ajaximage.php">
                            <input type="file" name="photoimg" id="photoimg" />
                        </form>

3 个答案:

答案 0 :(得分:2)

$(document).ready(function()
                {
                    $('#myImageForm').ajaxForm({
                       beforeSend : function(){alert('about to submit')},
                       complete:function(){alert('submited and result recieved')}
                    });
                    $('#photoimg').change( function()
                    {
                        $("#emailpreviewloader").html('');
                        $("#emailpreviewloader").html('<img width="180" src="/loader.gif" alt="Uploading...."/>');

                        $('form#myImageForm').submit();
                        alert("submitted");
                    });
                });

尝试使用此代码,看看您是否要提交或提交已提交的结果并收到结果提醒

如果您没有提交即将提交警报,则可能是您调用的元素.ajaxForm不正确。 如果您同时收到两个警报,那么最可能的情况是服务器返回错误

答案 1 :(得分:0)

我认为您最好通过选项在ajaxForm中指定所需的回调。

e.g。

$('#myImageForm').ajaxForm({
  success: function () { ... }
});

另外,请注意,submit()将是一个异步函数,因此警告(&#34;提交&#34;);无论提交是成功还是失败,都会被调用。

答案 2 :(得分:0)

尝试不使用jquery表单插件,看看发生了什么:

$(document).ready(function()
                {
/*
                  $('#myImageForm').ajaxForm({
                       beforeSend : function(){alert('about to submit')},
                       complete:function(){alert('submited and result recieved')}
                    });
*/

                    $('#photoimg').change( function()
                    {
                        $("#emailpreviewloader").html('');
                        $("#emailpreviewloader").html('<img width="180" src="/loader.gif" alt="Uploading...."/>');

                        $.post("ajaximage.php",{ photoimg:$(this).val()} ,function(data)
                        {
                            alert(data);
                        })
                       .fail( function(xhr, textStatus, errorThrown) {
                           alert(xhr.responseText);});
                    });
                  });

然后在你的php文件中:

$photoimg=$_POST['photoimg'];
if($photoimg){
    echo "ok";
}

你必须有一个提示“ok”。 你也可以发布ajaximage.php并告诉我们你正在使用的jquery版本吗?