【问题标题】:Submit Ajaxform on change在更改时提交 Ajaxform
【发布时间】:2015-11-15 23:58:22
【问题描述】:

我有一个 Ajax 表单,我需要在用户选择图像后立即提交。问题是表单没有提交。请任何指导将不胜感激

--形式---

<form id="bgimageform" method="post" enctype="multipart/form-data" action="process.php">
    <div class="uploadFile timelineUploadBG">
        <input type="hidden" name = "bkg" value = "1"/>
        <input type="file" name="photoimg" id="bgphotoimg" class="custom-file-input">

    </div>

</form>

--- JS 代码 ---

<script src="js/jquery-1.7.1.min.js"></script>
<script src="js/jquery.form.js"></script>
<script src="/js/jquery-ui.min.js"></script>
<script src="js/jquery.wallform.js"></script>
<script>
$(document).ready(function() {

  /* Uploading Profile BackGround Image */
  $('body').on('change','#bgphotoimg', function() {

    $("#bgimageform").ajaxForm({target:'#timelineBackground'}).submit();

  });
});
</script>

【问题讨论】:

  • 你考虑过使用 Dropzone.js 吗?默认情况下,一旦添加项目,它将“提交”。也可以拖拽图片
  • 没有,请问有链接吗?
  • 搜索 dropzone.js 应该会找到它,但无论如何:dropzonejs.com
  • 感谢现在查看
  • 存在语法错误。传递给 ajaxForm 的 JSON 对象有一个悬空逗号。尝试做:$('#bgimageform').ajaxForm({target:'#timelineBackground'}).submit();

标签: javascript jquery ajax onchange ajaxform


【解决方案1】:

试试这个

 $("body").on('change','input#bgphotoimg', function() {
   $('#bgimageform').submit(AjaxCall);
});
function AjaxCall(){
  // ajax call here 
  $.ajax({
    type: "POST",
    url: "url",
    data: {},
    success: function(data) {
        // code here 
        console.log(data);
    }
  });
  return false; 
 }

【讨论】:

    【解决方案2】:

    你是对的,第一次尝试很遥远。

    无论如何,我已经进行了一些测试,如果你这样做,它似乎可以工作。

    $('body').on('change','#bgphotoimg', function() {
        alert("It should have submitted.");
    });
    

    这是一个演示它的小提琴。 http://jsfiddle.net/gt9e160f/

    所以我不得不指出您的提交方法,因为肯定会调用 on change。

    我以前从未使用过 jquery.form.js,但我从他们的文档中提取了这个:

    $(function(){
    
        //bind the form's submit to ajaxForm
        $("body").on('submit', '#bgimageform', function(e){
            $(this).ajaxForm({target:'#timelineBackground'});
            e.preventDefault();
            return false;
        });
    
        /* Uploading Profile BackGround Image */
        $('body').on('change','#bgphotoimg', function() {
            //submit the form
            $("#bgimageform").submit();
        });
    });
    

    【讨论】:

    • 警报功能有效,但提交表单是个问题。如果我将警报功能放在这一行之后,$('#bgimageform').ajaxForm({target:'#时间线背景'}).submit();这是行不通的。那条线很奇怪..
    • 再编辑一次,希望这行得通。否则我没有想法;)
    • 如果您使用浏览器调试工具,请查看是否正在发出提交请求。如果是,请仔细检查您的服务器端 PHP。在任何情况下,如果您有任何错误或在链中的哪个位置被准确破坏,更新您的答案将会很有帮助。
    • jsfiddle.net/gt9e160f/3 我已经确认该表单是实际发布的。您可能需要为图像/文件与文本采取替代路线
    猜你喜欢
    • 1970-01-01
    • 2015-11-22
    • 1970-01-01
    • 1970-01-01
    • 2012-08-24
    • 1970-01-01
    • 2020-11-24
    • 2016-05-15
    • 2012-02-18
    相关资源
    最近更新 更多