HTML标签的<button>导致数据在firefox自动提交和在firefox里面弹出div窗口失败

项目中遇到这么个问题
项目中想利用div制造弹出窗口的操作
css文件

<style>
*{font-size:12px;}
div{z-index:1;}
#dialog-form {border:1px solid #000;width:400px;background:#fff;max-height:300px;
z-index:1000;position:absolute;display:none;top:40%;left:40%;margin-top:-100px;margin-left:-150px;}
#dialog-form div#dialog-content{height:150px;overflow-y:auto;}
#dialog-form h4{background:#CECECE;color:black;height:35px;margin:0px;}
#dialog-form h4 span {float:left;padding:10px;}
#dialog-form h4 span#close {float:right;cursor:pointer;}
#dialog-form h3{background:#fff;color:black;}
#dialog-form p{padding:2px 5px 5px 5px;}
#dialog-form input{padding:2px 2px 5px 5px;width:60px;margin:1px;}
</style>

js代码

function showDialog(){
var showDia=document.getElementById('dialog-form');
showDia.style.display = "block";
mybg = document.createElement("div");
mybg.setAttribute("id","mybg");
mybg.style.background = "#000";
mybg.style.width = "100%";
mybg.style.height = "100%";
mybg.style.position = "absolute";
mybg.style.top = "0";
mybg.style.left = "0";
mybg.style.zIndex = "500";
mybg.style.opacity = "0.3";
mybg.style.filter = "Alpha(opacity=30)";
document.body.appendChild(mybg);
}
function closeDialog(){
var showDia=document.getElementById('dialog-form');
var bg=document.getElementById('mybg');
showDia.style.display="none";
document.body.removeChild(bg);
}

html代码
初衷是想点击检索按钮,弹出div

<form action="index.do">
.....
...
<button id="search" onclick="showDialog()">検索...</button>
</form>


[color=green]下面是隐藏的窗口,等待js呼出div。但点击检索后,总是一闪而过,并且还是提交到Action数据[/color]

</div>
<div id="dialog-form" title="検索">
<h4><span>検索</span><span id="close" onclick="closeDialog()">CLOSE</span></h4>
<form>
<div id="dialog-content">
<fieldset>
<table width="80%" border="0" cellspacing="1" cellpadding="3"
align="center" class="contentTable">
<tr class="defaultBGColor">
<td align="center" class="editLabel"></td>
<td align="center" class="editLabel">グループ名</td>
</tr>
<%
for(int i=0; i<result.size(); i++) {
%>
<tr class="defaultBGColor">
<td align="center"><input type="checkbox" name="sub_group"
value="<%=result.get(i)%>" /></td>
<td id="groupName" align="center"><%=result.get(i)%></td>
</tr>
<%} %>
</table>
</fieldset>
</div>
<h3 style="text-align:right" ><input type="submit" value="OK"/><input type="button" value="CANCEL" onclick="closeDialog()"/></h3>
</form>
</div>


原因解释
[quote]
<button> 标签定义一个按钮。
在 button 元素内部,您可以放置内容,比如文本或图像。这是该元素与使用 input 元素创建的按钮之间的不同之处。
<button> 控件 与 <input type="button"> 相比,提供了更为强大的功能和更丰富的内容。<button> 与 </button> 标签之间的所有内容都是按钮的内容,其中包括任何可接受的正文内容,比如文本或多媒体内容。
例如,我们可以在按钮中包括一个图像和相关的文本,用它们在按钮中创建一个吸引人的标记图像。
唯一禁止使用的元素是图像映射,因为它对鼠标和键盘敏感的动作会干扰表单按钮的行为。请始终为按钮规定 type 属性。Internet Explorer 的默认类型是 "button",而其他浏览器中(包括 W3C 规范)的默认值是 "submit"。
[/quote]
详细请见:[url]http://www.w3school.com.cn/tags/tag_button.asp[/url]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>1-用户登录</title> <style type="text/css"> a{text-decoration:none} body{ background-image:url(../img/longmao.webp); background-size: cover; height: 100vh; } h3{ color:#FFF; font-size:30px; } td{ color:#FFF; font-size:20px; } .ps{ padding-top:0px; } </style> <script type="text/javascript"> function refreshVerifyCode() { // 刷新验证码 var verifyCodeImage = document.getElementById("verify_codeImage"); verifyCodeImage.src = "../VerifyCodeServlet?" + Math.random(); } function register() { window.location.href = "register.jsp"; } </script> </head> <body > <h3>新闻发布系统>>用户管理>>登录</h3><hr color="#FFF"> <div class="ps"> <form action="../LoginSerlvet" method="post" name="frm_login"> <table align="center"> <tr> <td>用户名:</td> <td> <input type="text" name="userName"value="张凯"> </td> </tr> <tr> <td>密码:</td> <td> <input type="password" name="userPassword" value="1111"> </td> </tr> <tr> <td>验证码:</td> <td> <input type="text" name="verifyCode" value=""> <img src="../VerifyCodeServlet?t=<%=System.currentTimeMillis()%>" id="checkcode" onclick="this.src='../VerifyCodeServlet?t='+new Date().getTime()"/> </td> </tr> <tr> <td height="50" colspan="2" align="center"> <input type="submit" name="ok" value="提交"> <input type="reset" name="cancel" value="取消"> <input type="button" onclick="register();" value="注册"> </td> </tr> </table> </form> </div> </body> </html>加一个3.Ajax异步验证。登录时账号输完马上显示账号重复了。
最新发布
06-08
好的,你的要求是在这段代码中加入一个 Ajax 异步验证,当用户输入账号时,立即检测账号是否已存在,并给出相应提示。我给你提供一种实现方式,你可以将以下代码插入到 `<head>` 标签中: ``` <script type="text/javascript"> function checkUsername() { var xmlHttp; try { xmlHttp = new XMLHttpRequest(); // Firefox, Opera 8.0+, Safari } catch (e) { try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer } catch (e) { try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { alert("您的浏览器不支持AJAX!"); return false; } } } xmlHttp.onreadystatechange = function () { if (xmlHttp.readyState == 4) { var responseText = xmlHttp.responseText; if (responseText == "0") { document.getElementById("username_message").innerHTML = "该账号已存在,请重新输入"; } else { document.getElementById("username_message").innerHTML = ""; } } }; var username = document.getElementById("username").value; xmlHttp.open("POST", "../CheckUsernameServlet", true); xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xmlHttp.send("username=" + username); } </script> ``` 然后,在用户名输入框中加入 onblur 事件,调用 checkUsername() 函数进行账号验证。同时,在页面中加入一个 `<span>` 标签,用于显示账号是否重复的提示信息。修改后的代码如下: ``` <tr> <td>用户名:</td> <td> <input type="text" name="userName" id="username" value="张凯" onblur="checkUsername()"> <span id="username_message"></span> </td> </tr> ``` 最后,在服务器端编写一个 CheckUsernameServlet,用于接收客户端发来的账号信息,检查账号是否已存在,然后将结果返回给客户端。这个部分的代码需要根据你的具体情况进行编写,这里不再赘述。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值