【发布时间】:2016-01-29 19:57:44
【问题描述】:
我的html代码:
<div id="success_message" style="display:none">
<p>Good job!</p>
</div>
<div id="my-form">
<form>
<input>....... (there's lots of inputs)
<input id="my-btn" type="submit" name="" value="Send" />
<img id="loading-img" src="images/loading.gif" style="display:none"/>
</form>
</div>
最后我有我的javascript:
<script>
jQuery('#my-btn').click(function () {
jQuery('#my-btn').hide();
jQuery('#loading-img').show();
});
jQuery("#my-btn").click(function (e) {
var str = ......... (there's a string)
jQuery.ajax({
type: "post",
url: "/insert.php",
data: str,
dataType: "json",
success: function (result) {
if (result.success == 1) {
jQuery('#loading-img').hide();
jQuery('#my-form').hide();
jQuery('#success-message').show();
} else {
jQuery('#my-btn').show();
}
}
});
});
</script>
问题不在于传入的 str 或 ajax 调用,因为我已经用我的代码和数据进行了测试,一切都被执行了,然后转到“if(result.success == 1)”部分代码..
问题是当我舔“my-btn”时,它使“my-btn”隐藏了,但是加载图像没有出现,div所在的表单也没有隐藏,然后成功消息也没有显示...
我做错了什么,我怎样才能让我的代码变得更好?
【问题讨论】:
-
在
#my-form上调用hide()将隐藏所有子组件——包括#my-btn和#loading-img。您还两次将click()绑定到同一个元素。在单个事件处理程序中添加条件。
标签: javascript jquery ajax show-hide