search

Home  >  Q&A  >  body text

php - 为什么发送ajax请求页面也会刷新呢?

<button class="btn btn-default" onclick="set_chat_msg()">send</button>

点击按钮触发函数

set_chat_msg()部分:

var url= "chat_send_ajax.php";
url += "?name=" + strname + "&msg=" + strmsg;//将用户名和消息变量拼接进url中
oxmlHttpSend.open("GET",url,true);//打开请求
oxmlHttpSend.send(null);//发送
//alert(oxmlHttpSend);//为什么在firefox下不注释这里php就无法接收到数据执行呢?chrome是正常的

然后就是php接收到进行处理。

为什么我点击按钮后页面会被刷新一次呢?然后如果是在firefox下php根本接收不到数据也不执行了,chrome就可以。

黄舟黄舟2776 days ago447

reply all(5)I'll reply

  • 高洛峰

    高洛峰2017-04-11 10:36:31

    只要在<form>标签内,一定要明确指定<button>的类型,记得给<button>加上type="button"type="submit",说多了都是泪~

    reply
    0
  • 阿神

    阿神2017-04-11 10:36:31

    button 标签请添加 type='button' 属性,因为浏览器默认会认为 button 的属性是submit.type=‘submit’时会发生提交表单的默认行为。

    <button type='button' class="btn btn-default" onclick="set_chat_msg()">send</button>

    W3shool:

    请始终为按钮规定 type 属性。Internet Explorer 的默认类型是 "button",而其他浏览器中(包括 W3C 规范)的默认值是 "submit"。

    reply
    0
  • PHPz

    PHPz2017-04-11 10:36:31

    说多了都是泪啊,button改成input也可以呢

    reply
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-11 10:36:31

    button不加type='button',谷歌和ff都会当成是submit,低版本的ie不会有这个情况

    reply
    0
  • PHPz

    PHPz2017-04-11 10:36:31

    可以在function下加上event.preventDefault();

    reply
    0
  • Cancelreply