点击button传递消息,但是页面不跳转的解决方法

  最近在做一个物联网的项目时遇到的问题:界面上有很多控制开/关灯的button,通过点击button来控制各个灯的亮灭。我需要将获取的不同的点击事件消息,以Socket通信的方式发送给硬件端的服务监听程序。但是当点击button将消息发送到某个Servlet中时,界面会跳转。

解决方案:

1.解决页面跳转

用jquery+ajax发送Get请求。

用法: $.get( url, [data], [callback] )

参数:

url (String) :  发送请求的URL地址.

data (Map) : (可选) 要发送给服务器的数据,以 Key/value 的键值对形式表示,会做为QueryString附加到请求URL中。

callback (Function) : (可选) 载入成功时回调函数(只有当Response的返回状态是success才是调用该方法)。

2.解决当点击“打开”按钮后,按钮变为灰色不可点;当点击“关闭”按钮后,按钮变为灰色不可点,“打开”按钮变为可点

 可在js中通过改变button的disabled属性,来动态控制按钮的状态。当disabled=true时,按钮不可点;当disabled=false时,按钮可点。

具体解决过程:

web端界面

点击button传递消息,但是页面不跳转的解决方法

前端关键代码;

1 <script type="text/javascript" src="http://www.likecs.com/jquery-2.1.1.js"></script> 2 <script type="text/javascript"> 3 function on(led){ 4 var btnOn = document.getElementById(led); 5 var led2 = led.split(\'_\'); 6 var btnOff = document.getElementById(led2[0]+"_off"); 7 btnOn.disabled = true; 8 if(btnOff.disabled) 9 btnOff.disabled = false; 10 $.get("/testweb/ControlServlet?value="+led); 11 } 12 13 function off(led){ 14 var btn = document.getElementById(led); 15 var led2 = led.split(\'_\'); 16 var btnOn = document.getElementById(led2[0]+"_on"); 17 btn.disabled=true; 18 if(btnOn.disabled) 19 btnOn.disabled = false; 20 $.get("/testweb/ControlServlet?value="+led); 21 } 22 </script>

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzzssg.html