为什么使用ajax通过输入type="password"
发送数据不工作?
主要思想当我填写密码少于6个字符时,它将显示Password minimum 6 characters
OK,当我测试这个代码它不工作,然后我编辑代码index.php
从
<input type="password" name="password" id="password"
<input type="text" name="password" id="password"
一切顺利。
我的问题是,如何应用此代码用于<input type="password" name="password" id="password"
index . php
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script language="JavaScript">
var HttPRequest = false;
function doCallAjaxpassword() {
HttPRequest = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
HttPRequest = new XMLHttpRequest();
if (HttPRequest.overrideMimeType) {
HttPRequest.overrideMimeType('text/html');
}
} else if (window.ActiveXObject) { // IE
try {
HttPRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
HttPRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!HttPRequest) {
alert('Cannot create XMLHTTP instance');
return false;
}
var url = 'check_password_lenght.php';
var pmeters = "CPassword=" + encodeURIComponent( document.getElementById("password").value);
HttPRequest.open('POST',url,true);
HttPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
HttPRequest.setRequestHeader("Content-length", pmeters.length);
HttPRequest.setRequestHeader("Connection", "close");
HttPRequest.send(pmeters);
HttPRequest.onreadystatechange = function()
{
if(HttPRequest.readyState == 3) // Loading Request
{
document.getElementById("mySpanpassword").innerHTML = "..";
}
if(HttPRequest.readyState == 4) // Return Request
{
if(HttPRequest.responseText == 'Y')
{
window.location = 'AjaxPHPRegister3.php';
}
else
{
document.getElementById("mySpanpassword").innerHTML = HttPRequest.responseText;
}
}
}
}
</script>
<input type="password" name="password" id="password" onchange="JavaScript:doCallAjaxpassword();" value="<?php echo htmlspecialchars($_POST['password']); ?>"> <span id="mySpanpassword"></span>
check_password_lenght.php
<?php
$strPassword = $_POST[CPassword];
// ฟังก์ชันตรวจสอบว่า password มีความยาวเกิน 6 ตัวหรือไม่
$strlen_password = strlen($strPassword);
if ( $strlen_password < 6 )
{
echo "Password minimum 6 characters";
}
?>
最好不要在页面上加载jQuery时使用XMLHttpRequest对象,这是浪费时间。
HTML<input type="password" name="password" id="password"/>
JS
$.ajax({
type: "POST",
url: "check_password_lenght.php",
data: { password : $('#password').val() }
}).done(function( response ) {
alert( response );
});