问候开发人员,我从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>
答案 0 :(得分:0)
我不是JavaScript方面的专家,但似乎了解问题所在。
两种可能的情况是:
1-如果输入type =“ submit”,它将提交表单,但是将不会调用您的javascript方法,因为在提交表单后,您将被重定向到同一页面或不同页面的某个网页,因此这是一个新的获取请求。
2-如果您输入的是=“ button”,那么它将不会提交表单,但是您的javascript方法将被调用,因为您将保留在同一网页上。
检查是否存在差异:Difference between <input type='button' /> and <input type='submit' />
解决方案:
保留输入type = button并对post方法进行ajax调用,并在成功执行ajax调用后,启用/禁用您的添加和取消好友按钮。
没有方便的代码,因此无法共享代码。
希望有帮助。