Javascript / Ajax适用于Mozilla firefox,但不适用于Google Chrome和IE
Javascript / Ajax works in Mozilla firefox but not in Google Chrome and IE
我有一个适用于注册和登录的表单,并且正在使用javaScript Ajax提交它。
它在Mozilla firefox中运行良好,但在Chrome和IE中失败。
我正在尝试执行一个 AJAX 和 PHP 脚本,该脚本在文本框中使用电子邮件 ID 检查数据库。如果数据库中已存在电子邮件 ID,则显示密码字段(登录),否则显示其他必填字段。即姓名和电话号码(注册)。
我的主要问题是这部分不起作用。
document.getElementById("contbtn").style="display:none";
document.getElementById("subbtn").style="display:block";
以下是javaScript Ajax代码:
<script>
function CheckUser()
{
var uemail = document.getElementById("email").value;
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
var frm_element = document.getElementById('contbtn');
var vis = frm_element.style;
if (vis.display=='' || vis.display=='none') {
vis.display = 'block';
}
else {
vis.display = 'none';
}
var frm_element1 = document.getElementById('subbtn');
var vis1 = frm_element1.style;
if (vis1.display=='' || vis1.display=='none') {
vis1.display = 'block';
}
else {
vis1.display = 'none';
}
}
}
xmlhttp.open("GET","check_user.php?emlid="+uemail,true);
xmlhttp.send();
}
</script>
<body>
<form action="" method="post">
<ul class="contactform">
<li><label>Email</label><input name="email" id="email" required="" onblur=" return CheckUser();" type="text"></li>
<div id="txtHint"></div>
<li>
<input class="btn" id="contbtn" onclick="CheckUser();" type="button" value="Next" style="display: block;">
<input class="btn" id="subbtn" style="display: none;" type="submit" value="Submit">
</li>
</ul>
</form>
要实际回答为什么它不起作用的问题:
style
是不能覆盖的HTMLElement
属性。(它受到保护)。在您的第一个示例中,您尝试通过执行style = "string"
来执行此操作。
然而,JavaScript代码中的样式是一个object
,所有style attributes
都可以作为object attributes
使用。CSS代码和JavaScript之间的区别在于破折号。单独的单词在CSS代码中得到一个破折号-
,并在JavaScript中通过camelCasing
连接,例如:CSS代码中的border-width
在JavaScript中变得borderWidth
。
因此,要在 JavaScript 中正确设置或检索样式属性,请将style
视为对象。 例如:
-
Element.style.display = "block"
-
Element.style.borderBottomColor = "#ff0000"
我让它工作只是替换了这个
document.getElementById("contbtn").style="display:none"
document.getElementById("subbtn").style="display:block";
跟
var frm_element = document.getElementById('contbtn');
var vis = frm_element.style;
if (vis.display=='' || vis.display=='none') {
vis.display = 'block';
}
else {
vis.display = 'none';
}
var frm_element1 = document.getElementById('subbtn');
var vis1 = frm_element1.style;
if (vis1.display=='' || vis1.display=='none') {
vis1.display = 'block';
}
else {
vis1.display = 'none';
}
相关文章:
- JQueryhide()不适用于Mozzilla,但适用于Chrome
- PHP中的setcookie仅适用于localhost
- html5 drawImage适用于firefox,而不是chrome
- 提供“;onClick"适用于iPad(触摸屏)和桌面用户的默认功能
- jQuery表单验证适用于Mozilla和Internet Explorer,但不适用于Chrome或Safari
- ResolveUrl是否适用于././也
- Firebase updateChildValues适用于IOS,但不适用于Web和Android
- JavaScript警报适用于int,但不适用于string
- SQLite插件适用于Mac和Windows,但不适用于手机上的Safari
- 如何调试遗留的javascript代码(适用于IE,但在Google Chrome中不正常)
- jquery UI Datepicker setDate 仅适用于 Google Chrome
- Javascript / Ajax适用于Mozilla firefox,但不适用于Google Chrome和IE
- SOAP 客户端仅适用于 Google Chrome
- 如何使用适用于jQuery和jQuery Mobile的Google Map v3插件获取路线
- Google图表中的自定义工具提示只适用于focustarget:category
- Rails:上传dropzone,S3,carrierwave,不适用于Safari,但适用于Google Chrome
- Google Places componentrestrictions适用于iOS的国家/地区
- Kinetic.js javascript不适用于Google Chrome,但适用于Mobile Safari
- @页边距设置仅适用于Google Chrome
- Google HTML 5 地理位置“使用我的位置”仅适用于 Firefox