嘿伙计们,当最终用户点击提交时,我正在尝试更新div元素 键。
所以我有这段代码:
<div class="duruGetPhone"> <input type="submit" name="upload" value="submit" class="something" /> </div>
<script>
$(document).ready(function() {
$('input.something').click(function(e) {
e.preventDefault();
$('div.duruGetPhone').load('loadImage.php', {param1: '<?php echo $Hood; ?>', param2: '<?php echo $Id; ?>'});
});
});
</script>
如果我使用'a'标签或'span'但输入不起作用,这可以正常工作。 它实际上更新了div,但没有执行提交。如果我 不要使用“preventDefault”然后没有任何反应。有人可以对这一个有所了解吗?
答案 0 :(得分:1)
假设您的示例包含在表单标记中,我有可能的解释。
如果没有preventDefault
,则会触发click事件处理程序,但会通过将表单发布到服务器来缩短,因此load
函数永远不会完成。
使用preventDefault
,点击事件处理程序将触发并成功结束。但是,默认行为(表单提交)已被禁用。
除了click事件之外,您为什么还希望表单回发到服务器?我误解了什么吗?
如果您希望点击事件因成功提交表单而触发,我会调查使用jQuery表单插件http://jquery.malsup.com/form/来使用ajaxSubmit
或{{异步控制回发1}}。
答案 1 :(得分:0)
如果我理解你想要的正确(提交表单,将响应放在DIV中,并在发生这一切时发生按钮时禁用该按钮)我会使用上面提到的表单插件:
http://jquery.malsup.com/form/
...并做这样的事情(未经测试,但应该在球场):
<script>
$(document).ready(function() {
$("#myform").ajaxForm({
target: "div.duruGetPhone",
beforeSubmit: function(responseText, statusText) {
$("input.something").disable();
}
});
});
</script>
<form id="myform" method="post" action="loadImage.php">
<input type="hidden" name="param1" value="<?php echo $Hood; ?>"/>
<input type="hidden" name="param1" value="<?php echo $Id; ?>"/>
<div class="duruGetPhone">
<input type="submit" name="upload" value="submit" class="something" />
</div>
</form>
然后loadImage.php只需要返回你想插入duruGetPhone的IMG标签。