如果checkBrowser
函数的结果为old
,我会使用jQuery提交表单。
<form action="xxx" method="post">
...
<input id="iop" type="submit">
...
</form>
jQuery的:
$("#iop").mousedown(function(e){
e.preventDefault();
var status=checkBrowser();
if(status=='old'){
$("#iop").submit();
}
});
我做了什么:
我调试了代码并且它到达了行$("#iop").submit();
但没有任何反应。任何想法?
答案 0 :(得分:4)
您需要在submit()
而不是<form>
元素上使用<input>
。来自 docs :
当用户尝试时,提交事件将发送到元素 提交表格。它只能附加到元素
if(status=='old'){
$("form").submit();
}
或更具体地使用 .closest() 在遍历DOM树时获取提交按钮中最接近的匹配form
元素:
if(status=='old'){
$(this).closest('form').submit();
}
答案 1 :(得分:2)
现在您指的是submit input
而不是form
。
更改此内容:
$("#iop").submit();
对此:
$("form").submit();
答案 2 :(得分:1)
不要显式调用submit()
,而是让默认操作执行:
$("form").submit(function(e){
var status=checkBrowser();
if(status != 'old'){
e.preventDefault();
}
});
此外,将处理程序绑定到表单的submit
事件,而不是按钮。
答案 3 :(得分:1)
将<input id="iop" type="submit">
更改为<input id="iop" type="button">
和$("#iop").submit();
到$("form").submit();
试试这个
<form action="xxx" method="post">
<input id="iop" type="button" value="Submit">
</form>
<script src="http://code.jquery.com/jquery-latest.min.js"
type="text/javascript"></script>
<script>
$(document).ready(function(){
$("#iop").mousedown(function(e){
//e.preventDefault();
// var status=checkBrowser();
status = "old";
if(status=='old'){
$("form").submit();
}
});
});
</script>