如何使用javascript在提交表单之前隐藏和显示元素
How to hide and show element before submit form using javascript?
如何使用javascript在提交表单之前隐藏和显示元素?
当我按下按钮时,我想在提交表单之前显示id="loading"
并隐藏id="sub"
?
我测试了这个代码,我将显示id="loading"
并隐藏id="sub"
但不提交表单。
我该怎么做?
<form id="myForm" name="send_ask" action="xxx.php" method="post">
<input type="text" name="id" value="12345" style=" display: none;">
<button id="sub">Send</button>
<span id="result"></span>
</form>
<div id="loading" style=" display: none;">WAIT</div>
<script type="text/javascript">
$("#sub").click( function() {
$.post( $("#myForm").attr("action"),
$("#myForm :input").serializeArray(),
$("#sub").hide(),
$("#loading").show(),
function(info){ $("#result").html(info);
});
clearInput();
});
$("#myForm").submit( function() {
return false;
});
</script>
我建议使用$.ajax()
并使用beforeSend
&complete
。例:
$('#myForm').submit(function(e){
e.preventDefault();
$.ajax({
url: $("#myForm").attr("action"),
data: $("#myForm :input").serializeArray(),
type: 'post',
dataType: 'html',
success: function(data){
$("#result").html(data);
},
beforeSend: function(){
$("#loading").show()
},
complete: function(data){
$("#loading").hide()
}
});
});
您的$.post
参数是错误的。正确的是
$.post(url, data, function(result){.. run some code on complete .. }, dataType);
因此,您需要在完整回调中或在发布之前运行显示/隐藏逻辑。更好的方法是将处理程序附加到提交函数,而不是单击按钮。
$("#myForm").submit(function() {
$("#sub").hide();
$("#loading").show();
$.post(this.action, $(':input', this).serializeArray(), function(info){
$("#result").html(info);
});
clearInput();
return false;
});
相关文章:
- 基于其他下拉菜单选择隐藏/显示下拉菜单
- 数据表-隐藏/显示列
- $scope变量,ng隐藏/显示
- 隐藏/显示包含单词的ul li项目.但只能入住李的子女
- JQuery隐藏/显示无法正常工作
- 隐藏/显示下面的分区根据是否选择某个选项进行选择
- 使用类而不是id在JavaScript中隐藏显示
- 我想隐藏/显示我的SVG元素,同时在anguarJS中使用它
- 隐藏/显示图像
- Javascript 中的表 - 隐藏/显示列
- 仅使用Javascript隐藏/显示元素,而不会弄乱DOM
- 隐藏/显示 js 代码不会在 IE8 或更低版本上运行
- Magento:根据所选国家/地区隐藏/显示输入字段
- 货到付款选择隐藏/显示付款方式
- "隐藏/显示”;元素和更改按钮背景图像
- Bootstrap Collapse.js切换菜单的隐藏/显示
- 如何隐藏/显示<面板>使用jquery
- 在php中隐藏/显示切换回声结果
- 如何使用jquery使2个按钮切换css,而只使用1个按钮.不显示隐藏/显示
- JQuery隐藏/显示不起作用