使用纯JavaScript提交表单后禁用按钮

时间:2018-08-09 06:58:48

标签: javascript html css

问候开发人员,我从stackoverflow搜索所有先前的问题。没有正确的答案。我在form中创建了两个按钮,一个是addfriend,另一个是unfriend,这是禁用的。如果用户单击添加,将直接转到提示框。单击确定后,取消好友按钮将可以单击。现在我的问题是它可以提交我的表单,但是直到用户注销按钮才能按预期工作。在所有教程中,它们仅显示如何禁用按钮。每当我尝试时,它都可以工作,但是不提交我的表单。我希望我的表单提交和按钮禁用,直到用户注销为止。谢谢。

    <script>
function myFunction(form){
    var subject = prompt("Please enter Subject that want to study");
    var btn = document.getElementById("btn");
    var add = document.getElementById("add");
    btn.disabled=false;
    add.disabled=true;
    if (subject == null){
     form['subject'].value= subject;
    add.value="request sent";
    form.submit();
    return false;
    }
    else if(subject != null) {
        form['subject'].value= subject;
        add.value="request sent";
        btn.disabled=false;
        add.disabled=true;
        form.submit();
        return true;
            }

}
function unfriend(form){

    var btn = document.getElementById("btn");
    var add = document.getElementById("add");
    add.disabled=false;
    btn.disabled=true;
    add.value="request sent";   
    return true;
}
</script>
<form method="post" id="form" enctype="multipart/form-data" autocomplete="off" > 
    <input type="hidden" name="id" value="<?php echo $row['register_ID'];?>" />
    <input type="hidden" id="subject"  name="subject" data-uid=<?php echo $_SESSION['sid'] ;?>/>
    <td>
        <input type="submit" onclick="return myFunction(form)"name="addfriend" data-type='addfriend' id="add" class="btn" value="add" /> 
</form>
<form>                
    <input type="submit" value="unfriend" id="btn"  onclick="unfriend(form);" disabled="" /> 
    </td>   
</form>

1 个答案:

答案 0 :(得分:0)

我不是JavaScript方面的专家,但似乎了解问题所在。

两种可能的情况是:

1-如果输入type =“ submit”,它将提交表单,但是将不会调用您的javascript方法,因为在提交表单后,您将被重定向到同一页面或不同页面的某个网页,因此这是一个新的获取请求。

2-如果您输入的是=“ button”,那么它将不会提交表单,但是您的javascript方法将被调用,因为您将保留在同一网页上。

检查是否存在差异:Difference between <input type='button' /> and <input type='submit' />

解决方案:

保留输入type = button并对post方法进行ajax调用,并在成功执行ajax调用后,启用/禁用您的添加和取消好友按钮。

没有方便的代码,因此无法共享代码。

希望有帮助。