首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >检查用户名是否存在-跨浏览器问题!有什么建议吗?

检查用户名是否存在-跨浏览器问题!有什么建议吗?
EN

Stack Overflow用户
提问于 2013-05-18 01:37:23
回答 1查看 149关注 0票数 0

我有一个注册表,它会动态检查数据库中现有的用户名和电子邮件地址。然而,它似乎在FireFox或IE上都不起作用。不过,它在Safari和Chrome上很棒。代码如下:

代码语言:javascript
运行
复制
<input type="text" name="username" id="username" placeholder="Username" class="registerinvitel" onKeyUp="resettooltip();" onFocusOut="check_register_exist('username');" autocomplete="off" />

和JavaScript:

代码语言:javascript
运行
复制
function check_register_exist(meth){
    var cueajaxRequest;  // The variable that makes Ajax possible!

    try{
        // Opera 8.0+, Firefox, Safari
        cueajaxRequest = new XMLHttpRequest();
    } catch (e){
        // Internet Explorer Browsers
        try{
            cueajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try{
                cueajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e){
                // Something went wrong
                alert("Your browser broke!");
                return false;
            }
        }
    }
    // Create a function that will receive data sent from the server
    cueajaxRequest.onreadystatechange = function(){
        if(cueajaxRequest.readyState == 4){
var cuerez = cueajaxRequest.responseText;

if ( cuerez == 'exist' ) { infotooltip(meth, cuerez); 

document.getElementById('chk'+meth).value = "exist";

} else { document.getElementById('chk'+meth).value = "ok"; }


        }
    }


    var curchk = document.getElementById(meth).value;
    var queryString = "meth="+meth+"&u=" + curchk;
    cuenocache = Math.random();
    cueajaxRequest.open("GET", "/ajax/check.php?" + queryString + "&nocache=" + cuenocache, true);
    cueajaxRequest.send(null); 


}

你知道我怎么修改它才能让它工作吗?AJAX check.php代码如下(但我不认为这是问题所在):

代码语言:javascript
运行
复制
<?

include  "../conf/config.php";

if(isset($_GET['meth'])) { $meth = $_GET['meth']; } else { $meth = ''; }
if(isset($_GET['u'])) { $u = $_GET['u']; } else { $u = ''; }


if ( $meth == 'username' ) {


$query_chkuser = mysql_query("SELECT * FROM members WHERE Username = '$u'");
$query_nr_res = mysql_num_rows($query_chkuser);

if ( $query_nr_res == '1' ) { echo "exist"; } else { echo "ok"; }


} 

elseif ( $meth == 'email' ) {


$query_chkuser = mysql_query("SELECT * FROM members WHERE Email = '$u'");
$query_nr_res = mysql_num_rows($query_chkuser);

if ( $query_nr_res == '1' ) { echo "exist"; } else { echo "ok"; }


} 

else {}
EN

Stack Overflow用户

回答已采纳

发布于 2013-05-18 01:38:46

尝试使用onBlur而不是onFocusOut

编辑:或者,更好的是,onChange -毕竟,如果用户没有更改文本,您不需要重新检查。

票数 7
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16614949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档