jquery submit 與 按紐問題

<form method="post" name="goform" id="goform" enctype="multipart/form-data">
 <textarea type="text"></textarea>
 <input type="file">
<button type="submit" id="timeline_post_btn">發佈</button>
</form>

$("form#goform").submit(function(event){
    event.preventDefault();
    
document.getElementById("timeline_post_btn").innerHTML = "請稍後";
    document.getElementById("timeline_post_btn").disabled=true;
    
    if (timeline_post.value=="")
    {
        timeline_post.focus();
        return (false);
    }
    else
    {
        
        var formData = new FormData($(this)[0]);
        
        $.ajax({
            type:"POST",
            url:"ing",
            data: formData,
            async: false,
            cache: false,
            contentType: false,
            processData: false,
            success:function(){

                document.getElementById("timeline_post_btn").disabled=false;
                document.getElementById("timeline_post_btn").innerHTML = "發佈";

            }
        });
    }
    
});

以上是我去stack爬文的結果 就是可以上傳檔案和一般資料一起做 目前都可以work

只是現在遇到一個問題 就是變成我沒辦法去換button 按下去後我想要讓他變成 請稍後... 且 disabled 完成後再變回發佈 這之前都沒有問題 直到從click改成submit後就變成這樣了... 很奇怪 按了會先定住幾秒才有反應...... 我之前作法會是

$("#timeline_post_btn").click(function(event)

這樣就可以用.... 只是現在改成submit這個做法完全無效 無論火狐惑谷歌 請問是這個寫法哪裡有問題?

阅读 3.9k
2 个回答

题主不妨试试去掉event.preventDefault();在最后加上return false:

$("form#goform").submit(function(event){
    //event.preventDefault();
    
document.getElementById("timeline_post_btn").innerHTML = "請稍後";
    document.getElementById("timeline_post_btn").disabled=true;
    
    if (timeline_post.value=="")
    {
        timeline_post.focus();
        return (false);
    }
    else
    {
        
        var formData = new FormData($(this)[0]);
        
        $.ajax({
            type:"POST",
            url:"ing",
            data: formData,
            async: false,
            cache: false,
            contentType: false,
            processData: false,
            success:function(){

                document.getElementById("timeline_post_btn").disabled=false;
                document.getElementById("timeline_post_btn").innerHTML = "發佈";

            }
        });
    }
   return false 
});

可能是form缺少action,所以submit不知道将表单提交到哪里

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进