【问题标题】:JQuery change(function()) submitting form twiceJQuery change(function()) 提交表单两次
【发布时间】:2015-01-16 13:39:36
【问题描述】:

有一个用 PHP 编写的“创建个人资料”页面。有 2 个表单和 1 个 JQuery 函数。

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

        $('#photoimg').change(function(){ 

            $("#imageform").ajaxForm({
                        target: '#preview'
            }).submit();
        });
    }); 
</script>

这是显示图像的位置:

<div id='preview'></div>

Form-1:(用于上传头像)

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

Form-2:(其他文字信息)

<form class="form-signin" name="reg" role="form" action="process.php" method="post">
    .... some normal input values ....
   <input type="submit" value="Submit">
</form>

问题:

当我点击“photoimg”浏览图像文件并选择时,JQuery“onchange”工作正常,“imageform”正在提交,“ajaximage.php”被称为上传的图像正在显示完美地在DIV“预览”的主页上,无需刷新主页。这部分运行良好。

现在,如果我点击表单“reg”的提交按钮,而不是转到“process.php”,它会再次转到“ajaximage.php”。这就是问题所在。

如果我刷新主页然后点击“reg”表单的提交按钮,那么它将转到“process.php”。

我不确定我的问题是否清楚。提前感谢您的时间和帮助。

添加“ajaximage.php”代码供您参考:

if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST")
{
 .......
  do all the image upload stuff & update database
 .......
 echo "<img src='uploads/".$actual_image_name."'>";
}

【问题讨论】:

  • 你的问题很清楚..
  • 有什么建议@Ray?
  • 我已经在我的本地主机中尝试过你的代码.. 它的工作就像一个魅力.. 当我浏览图像文件时,jQuery .change 事件正在工作并且可以看到在浏览器控制台中调用的 ajaximage.php 和当我点击提交时,页面被重定向到 process.php,而不刷新页面!!
  • 你试过 ajaxSubmit()..
  • @Shaunak:我添加了 ajaximage.php 代码格式。请再试一次。

标签: php jquery image-uploading


【解决方案1】:

可以通过。

  1. 在更新目标 div 后检查所有 html 标签是否正确关闭。
  2. 请求完成后尝试将焦点移出文件元素。
  3. 检查控制台上的 jQuery 错误。
  4. 检查某些 id 是否不冲突。

【讨论】:

    猜你喜欢
    • 2013-03-27
    • 1970-01-01
    • 2013-12-10
    • 1970-01-01
    • 2018-10-28
    • 1970-01-01
    • 2011-06-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多