开发者社区> 问答> 正文

jQuery的AJAX提交问题-jquery报错

"

提交<textarea id="contentbox" class="input_text headtextarea" onkeydown="javascript:return ctrlEnter_st(event);"></textarea>中的内容

 按钮<input type="button" id="sendMM" class="sendbutton" onclick="sendMM()" value="发送广播"/>

下边是sendMM()

function sendMM(){
		$("#sendMM").click(function(){
				$.ajax({
					type:"POST",
					url:"pub.php",
					data:"content="+$("#contentbox").val(),
					cache:false,
					timeout:1000,
					success:function(msg){
						if(msg==1){
							alert("信息发送成功!");
						}else{
							alert("发送失败!请重试!");
						}
					}
				});
			
		});
		
	}

下边是pub.php

<?php
	require_once('../lib/auto_load.php');
	if(!defined('WB_INC')){
		exit('request error!');
	}
	
	require_once('../lib/islogin.php');
	$user_name=$_SESSION['user_name'];
	$user_id=$_SESSION['user_id'];
	@$content=$_POST['content'];
	$posttime=date("Y-m-d H:i:s",time());
	
	$sql="insert into wb_content(user_id,content_body,posttime) values('$user_id','$content','$posttime')";
	$result=$obj->exec($sql);
	if($result){
		$num=1;
	}else{
		$num=0;
	}
	echo $num;
	
?>

第一次点按钮,没有响应,点第二次时候alert两次“发送成功”,点第三次,alert三次,依次累加,数据库数据也插入这么多次

请达人相助,错在哪里了,也尝试定义了全局变量控制按钮,但是还是无效

" ![image.png](https://ucc.alicdn.com/pic/developer-ecology/42f6b6cd49264911a2946134dd96c669.png)

展开
收起
montos 2020-05-30 22:59:38 474 0
1 条回答
写回答
取消 提交回答
  • "

    把 onclick="sendMM()" 这个代码干掉!

    ######

    第一次点击的时候是触发<span style=""font-family: 微软雅黑, Verdana, Simsun, sans-serif;"">sendMM()方法,执行"<span style=""font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px; line-height: 14px;"">$(<span class=""string"" style=""color: blue; background-color: inherit; padding: 0px; margin: 0px; border: initial none initial;"">"#sendMM"<span style=""color: black; background-color: inherit; padding: 0px; margin: 0px; border: initial none initial;"">).click(<span class=""keyword"" style=""color: #006699; background-color: inherit; font-weight: bold; padding: 0px; margin: 0px; border: initial none initial;"">function<span style=""color: black; background-color: inherit; padding: 0px; margin: 0px; border: initial none initial;"">(){",这只是为"<span style=""font-family: 微软雅黑, Verdana, Simsun, sans-serif;"">sendMM"绑定function,并不执行里面的语句.

    第二次点击,以我的理解就是,先执行了sendMM()方法,这时候就相当于绑定了两次function,然后又执行了绑定的click事件,所以弹出两次.

    以此类推...

    ######

    引用来自#2楼“红薯”的帖子

    把 onclick="sendMM()" 这个代码干掉!

    已解决,感谢红薯老大

    刚学jQuery,犯低级错误了,但是为什么它会累加次数呢,呵呵

    ######

    引用来自#3楼“答复哈”的帖子

    第一次点击的时候是触发sendMM()方法,执行"$("#sendMM").click(function(){",这只是为"sendMM"绑定function,并不执行里面的语句.

    第二次点击,以我的理解就是,先执行了sendMM()方法,这时候就相当于绑定了两次function,然后又执行了绑定的click事件,所以弹出两次.

    以此类推...

    点一次响应两次可以理解,但是为什么会一直累加呢

    ######

    多次点击还有错误

    [12:09:04.375] POST http://localhost/weibo/user/pub.php [undefined 996ms]

    ######

    引用来自#5楼“刘龙”的帖子

    引用来自#3楼“答复哈”的帖子

    第一次点击的时候是触发sendMM()方法,执行"$("#sendMM").click(function(){",这只是为"sendMM"绑定function,并不执行里面的语句.

    第二次点击,以我的理解就是,先执行了sendMM()方法,这时候就相当于绑定了两次function,然后又执行了绑定的click事件,所以弹出两次.

    以此类推...

    点一次响应两次可以理解,但是为什么会一直累加呢

    累加是因为$("#sendMM").click(function(){});

    .click()这个函数,是给$("#sendMM")绑定一个方法,这个方法的内容就是.click()的参数,每点一次,增加绑定一个会弹窗口的函数。

    所以就累加啦~

    ######

    引用来自#7楼“SeekerLee”的帖子

    引用来自#5楼“刘龙”的帖子

    引用来自#3楼“答复哈”的帖子

    第一次点击的时候是触发sendMM()方法,执行"$("#sendMM").click(function(){",这只是为"sendMM"绑定function,并不执行里面的语句.

    第二次点击,以我的理解就是,先执行了sendMM()方法,这时候就相当于绑定了两次function,然后又执行了绑定的click事件,所以弹出两次.

    以此类推...

    点一次响应两次可以理解,但是为什么会一直累加呢

    累加是因为$("#sendMM").click(function(){});

    .click()这个函数,是给$("#sendMM")绑定一个方法,这个方法的内容就是.click()的参数,每点一次,增加绑定一个会弹窗口的函数。

    所以就累加啦~

    恩,谢谢,修改后多次点击有时候会提示

    [12:09:04.375] POST http://localhost/weibo/user/pub.php [undefined 996ms]

    有时候却正常

    ######

    引用来自#8楼“刘龙”的帖子

    引用来自#7楼“SeekerLee”的帖子

    引用来自#5楼“刘龙”的帖子

    引用来自#3楼“答复哈”的帖子

    第一次点击的时候是触发sendMM()方法,执行"$("#sendMM").click(function(){",这只是为"sendMM"绑定function,并不执行里面的语句.

    第二次点击,以我的理解就是,先执行了sendMM()方法,这时候就相当于绑定了两次function,然后又执行了绑定的click事件,所以弹出两次.

    以此类推...

    点一次响应两次可以理解,但是为什么会一直累加呢

    累加是因为$("#sendMM").click(function(){});

    .click()这个函数,是给$("#sendMM")绑定一个方法,这个方法的内容就是.click()的参数,每点一次,增加绑定一个会弹窗口的函数。

    所以就累加啦~

    恩,谢谢,修改后多次点击有时候会提示

    [12:09:04.375] POST http://localhost/weibo/user/pub.php [undefined 996ms]

    有时候却正常

    没看懂。php错误码?我不会php。

    ######

    引用来自#9楼“SeekerLee”的帖子

    引用来自#8楼“刘龙”的帖子

    引用来自#7楼“SeekerLee”的帖子

    引用来自#5楼“刘龙”的帖子

    引用来自#3楼“答复哈”的帖子

    第一次点击的时候是触发sendMM()方法,执行"$("#sendMM").click(function(){",这只是为"sendMM"绑定function,并不执行里面的语句.

    第二次点击,以我的理解就是,先执行了sendMM()方法,这时候就相当于绑定了两次function,然后又执行了绑定的click事件,所以弹出两次.

    以此类推...

    点一次响应两次可以理解,但是为什么会一直累加呢

    累加是因为$("#sendMM").click(function(){});

    .click()这个函数,是给$("#sendMM")绑定一个方法,这个方法的内容就是.click()的参数,每点一次,增加绑定一个会弹窗口的函数。

    所以就累加啦~

    恩,谢谢,修改后多次点击有时候会提示

    [12:09:04.375] POST http://localhost/weibo/user/pub.php [undefined 996ms]

    有时候却正常

    没看懂。php错误码?我不会php。

    有时候点击会没响应,刷新后就能发送了,在FIREFOX的WEB控制台发现这个错误

    [12:09:04.375] POST http://localhost/weibo/user/pub.php [undefined 996ms]

    应该是$.ajax里边哪里设置不对吧

    ######

    已经解决了,是$.ajax里边的timeout要设置大一点,数据较大时,处理时间可能稍长,超出timeout的设置就中断了

    " ![image.png](https://ucc.alicdn.com/pic/developer-ecology/e5e1564407364385ad4f1356b0ab708d.png)
    2020-05-30 22:59:50
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
23-Vue.js在前端...1506518547.pdf 立即下载
Javascript中的函数 立即下载
JavaScript函数 立即下载