0

我在使用 JavaScript 时遇到了一个奇怪的问题,我正在开发一个 ajax 数据库。数据库的登录表单使用 ajax 请求/函数将数据发送到 PHP 控制器。我在登录页面上有一个错误显示不可见的 div(名为 errorDiv)。errorDiv html 是:

<div id="errorDiv" style="visibility:hidden; display:none">
...
</div>

当登录表单中的用户名和密码字段都为空时,我需要 PHP 控制器响应,显示登录表单并运行 JavaScript 函数“DisplayLoginError()”,这将使错误 div 可见并显示错误消息(请填写两个字段)在error-div.DisplayLoginError()函数的代码是:

function DisplayLoginError()
{
document.getElementById('errorDiv').style.visibility="visible";
document.getElementById('errorDiv').style.display="block";
document.getElementById('errorDiv').innerHTML = "<?php echo $loginerror; ?>";
}

php控制器代码为:

if(isset($_REQUEST['login']))
{
if(isset($_REQUEST['username']) && isset($_REQUEST['password']))
    {
    .....Both the fields are filled...
    }
else   /*===Error:Any of the username or password field has  been left empty====*/
    {
    $loginerror='Please fill both the Fields to login.';
    include $_SERVER['DOCUMENT_ROOT'].'\hospital\includes\collegedata\login-form.html.php';
    }
}

现在的问题是它无法完成,因为大多数 javascript 事件都是由用户操作触发的。暂时我已经为表单标签分配了一个 mouseover 事件,当触发该事件时运行 DisplayLoginError 函数并在 errorDiv 中显示错误。

<form onmouseover="DisplayLoginError()"> ..... </form>

但它不是正确的解决方案。我需要一个可以在仅加载登录 div 而不是整个页面时运行此功能的事件。我不能在这里使用 onload 事件作为它的 ajax 数据库,其中主页仍然只有 div 的更改。可能是时间事件可以用于此目的...我不确定...可能有更好的解决方案...我如何使用 ajax 来做到这一点?

4

1 回答 1

1

您可以在 javascript 中使用失去焦点事件。我无法清楚地理解您的询问。所以这只是一个建议。

<div id='errorDiv' >
</div>
Username : <input type="text" name="username" id="uname" onBlur="checkUsername();">
Password : <input type="text" name="password" id="pword" onBlur="checkValues();">

<script type="text/javascript">
function checkValues()
{
    uname = document.getElementById('uname').value;
    pword = document.getElementById('pword').value;
    if(uname=="" || pword=="") {
        document.getElementById('errorDiv').innerHTML="Please fill both the fields";
    }else{
        document.getElementById('errorDiv').innerHTML="";
    }
}
function checkUsername()
{
    uname = document.getElementById('uname').value;
    if(uname==""){
        document.getElementById('errorDiv').innerHTML="Please enter username";
    }else{
        document.getElementById('errorDiv').innerHTML="";
    }
}
</script>
于 2012-04-18T10:54:56.123 回答