有两个问题:
1、我在使用jquery的click事件时,发现有的时候会失灵。就是点击按钮(submit类型)却不执行click事件,这种现象偶尔会发生,可能是什么原因引起的呢?
2、使用click事件提交表单时,表单只能提交一次。具体地说就是:第一次点击按钮,可以提交表单,但是修改表单数据后,再次点提交,虽然执行了click事件,但是没有执行提交表单的操作。这个又是为什么呢?
请各位大神多多指教,谢谢!
1、我在使用jquery的click事件时,发现有的时候会失灵。就是点击按钮(submit类型)却不执行click事件,这种现象偶尔会发生,可能是什么原因引起的呢?
2、使用click事件提交表单时,表单只能提交一次。具体地说就是:第一次点击按钮,可以提交表单,但是修改表单数据后,再次点提交,虽然执行了click事件,但是没有执行提交表单的操作。这个又是为什么呢?
请各位大神多多指教,谢谢!
解决方案 »
- javascript问题 大家帮忙
- 跪求一个动态表格,是答对奉献100分!
- js中的document.getElementById()可以用于获取其它页面的控件吗?
- javascript学习似乎很困难
- 如何动态产生一行的控件?
- 请问下,在同个系统下 安装asp,asp.net 后 再安装jsp 会不会冲突
- 如何使浏览器刷新页面时不进行提示?
- 为什么 Math对象调用其方法是 Math.min(10,20) 而String 对象却不能写成String.toUpperCase()
- 请教单页web应用被加载页js对象释放策略
- 用TP框架做分页的样式设置
- 请教一个javascript变量作用域的问题!
- JS判断当天是否除夕节
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/JavaScript">
/*对于你说的第一个问题,是不是有可能是你直接就写下
$("#abv").click(function(),而没有加上前边的$(function()
你可以屏蔽掉代码的第一行和最后一行试一下结果*/
$(function(){
$("#abv").click(function(){
alert(123);
});
})
</script>
<input type="submit" id="abv" value="1234"/>对于你说的第二个问题,我建议你把submit按钮绑定
onclick事件
<script type="text/JavaScript">
function do_check(){
alert(456);
}
</script>
<input type="submit" id="abv" value="123" onclick="do_check();"/>
第二个问题,我试过了,用onclick还是不行,这个表单有个特点就是有多个提交键,也就是一个表单的数据有多种处理。如果只有一种处理方式,将表单提交直接放在$(document).read(function(){})一切正常,提交方式写在.click函数中或者是onclick函数中就会出现只能提交一次的问题
第一个问题:
按钮:
<input type = "submit" name = "chart" id = "chart" value = "生成图表"/>
处理:
$("#chart").click(function(){
alert("in");
var options = {
//target: '#output2', // target element(s) to be updated with server response
beforeSubmit: getData, // pre-submit callback
success: showChart // post-submit callback
};
$('#analyseForm').ajaxForm(options);
$('#analyseForm').submit(function() {
$(this).ajaxSubmit();
return false;
});
});
第二个问题:
按钮:(一个表单三个提交按钮)
<input type="submit" id = "search" value="查询" />
<input type = "submit" id = "chart" value = "生成图表"/>
<input type = "button" id = "generReport" value = "生成统计报表"/>
处理:
$(document).ready(function() {
//查询
$("#search").click(function(){
var options = {
//target: '#output2', // target element(s) to be updated with server response
beforeSubmit: showRequest, // pre-submit callback
success: showResponse // post-submit callback
};
// bind form using 'ajaxForm'
$('#demoForm').ajaxForm(options);
// bind to the form's submit event
$('#demoForm').submit(function() {
// inside event callbacks 'this' is the DOM element so we first
// wrap it in a jQuery object and then invoke ajaxSubmit
$(this).ajaxSubmit();
// !!! Important !!!
// always return false to prevent standard browser submit and page navigation
return false;
});
});
//生成分析报表
var start = null;
var end = null;
$("#generReport").click(function(){
start = $("#stringStartTime").val();
end = $("stringEndTime").val();
$("#demoForm").attr("action", "dataAnalyse.do?tabName=LogJjb");
$("#demoForm").submit(function(){
if (start == "" || end == ""){
alert("请输入起止时间");
return false;
}else{
return true;
}
});
});//生成图表
$("#chart").click(function(){
alert("in");
var options = {
//target: '#output2', // target element(s) to be updated with server response
beforeSubmit: getData, // pre-submit callback
success: showChart // post-submit callback
};
$('#demoForm').ajaxForm(options);
$('#demoForm').submit(function() {
$(this).ajaxSubmit();
return false;
});
});
});
提交前后的处理函数就不贴了,因为提交都不执行,提交前后的处理也就无效了,而且第一次提交一切正常。
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
jQuery(document).ready(function()
{ jQuery('.onclinks').click(function test(){
var testvaule =jQuery('.text1').val();
if(testvaule == 1){
return true;
}else{
alert('输入1的时候才能提交');
return false;
}
})
})
</script></head><body><form class="form1" action="http://www.opcnz.com" onsubmit="return test()">
<input type="text" name="text" class="text1" value="">
<input type="submit" class="onclinks" name="submit" value="提交">
</form>
</body>
</html>
$.ajax({
……
});
然后把按钮改成button
但是不知道为什么会这样,表单提交的两种ajax方法有什么不同,求大神解惑
jquery form , 不过是jquery 的插件, 并不纯正。
而且很有可能 此插件对jquery 的版本有要求。两者如不匹配就可能出错。所以直接用jquery的ajax提交是最好。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js" type="text/javascript"></script>
<title>无标题文档</title>
<script type="text/javascript">
//一定得放在页面加载完毕之后。否则按钮对象都没有加载,定义是无效的。
//或者把js写在页面尾部
$(function () {
$("#chart").click(function () {
alert("in");
});
});
</script>
</head>
<body>
<form id="analyseForm" >
<input type = "button" name = "chart" id = "chart" value = "生成图表"/>
</form>
</body>
</html>