目的:
ユーザーがユーザー名とパスワードを入力してログイン ボタンをクリックするログイン フォームがあります(type="submit")
。PHP コードからの戻り値にパターンが含まれているかどうかを特定しようとして"FailText"
います。はいの場合はメッセージを div に表示し、そうで"signinAlert"
ない場合 (ログインが成功した場合) はユーザーのホームページにリダイレクトします。
コード:
<form id="loginForm" name="loginForm" method="POST">
<table>
<tr>
<td><input class="input_home" type="text" name="username" id="email" size="30" placeholder="E-mail Address" /></td>
</tr>
<tr>
<td><input class="input_home" type="password" name="password" id="password" size="30" maxlength="12" placeholder="Password" /></td>
</tr>
<tr>
<td style="text-align: right;"><a href="#" title="Forgot Password">Forgot Password?</a> <input type="submit" class="Button" value="Sign In" id="login" onclick="return DisplayLoginError()"; /></td>
</tr>
</table>
</form>
これが私のJavaScript関数です。
function DisplayLoginError()
{
var loginForm = document.loginForm;
var dataString = $(loginForm).serialize();
$.ajax ({
type: 'POST',
url: 'login.php',
data: dataString,
success: function(data){
var result = data;
var patt1=new RegExp("FailText");
if (patt1.test(result))
{
$('#signinAlert').html(data);
$('#signinAlert').css('display','block');
}
else
{
window.location = "home/";
}
}
});
return false;
}
質問: 上記の JavaScript コードは非常にずさんだと強く思います (ログイン試行が成功したときの RegExp 評価のため)。目的を達成する他の方法はありますか?ちなみに、上記の方法はすべての主要なブラウザで機能します。