我有一个简单的注册表格。一旦用户键入他的电话号码并离开文本框(onblur),其他一些字段就会自动填充,使用Ajax调用php脚本,这个工作正常。现在,我正在尝试在不同的文本字段上添加另一个onblur()事件,该事件与ajax调用或填充的字段无关,但是采用相同的形式。但是,当我在java脚本中创建此函数时,事件不会被触发。更重要的是,原始的ajax调用也停止工作,即电话号码字段的onblur事件也不会被触发(我通过放置一些警报消息来证实这一点)。我被困了,并且鉴于我是一名新手网络开发者,这是一个烦躁的旅程。因此,任何帮助或推动正确的方向将不胜感激。
我的java脚本代码与我的HTML代码在同一个文件中,即在代码之间。当我在相同的脚本标签之间创建两个函数时,没有工作,但是当我将它们放在单独的脚本标签中时,第一个函数(电话号码后面的ajax调用)会在模糊时触发,但第二个函数则不会。这里的函数是:vldtnPhNo()和enabtnRegCmplt()。
<script type="text/javascript">
function vldtnPhNo()
{
var xhr;
var dvPhNo = document.getElementById("divPhNo");
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
var FoneNumb = document.getElementById("txtPhNo").value;
xhr.open("POST", "verify.php", true);
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");
xhr.onreadystatechange=function() {
if (xhr.readyState==4 && xhr.status==200) {
document.getElementById("txtRegInv").value = xhr.responseText;
var rstOftheTxt = xhr.responseText;
document.getElementById("txtPhNo").value=rstOftheTxt;
document.getElementById("txtPhPop").value=rstOftheTxt;
}
else
{
document.getElementById("txtPhNo").value='waiting';
document.getElementById("txtPhPop").value='waiting';
}
}
}
xhr.send("txtPhNo=" + FoneNumb);
}
else
{
throw new Error("Ajax is not supported by this browser");
}
}
function enabtnRegCmplt(){
If(txtRegInv.value!="")
{
var UsrNm;
var Psswd;
var RePsw;
var PostBackInfo;
UsrNm = document.getElementById('txtUsrNm');
Psswd = document.getElementById('txtPsw');
RePsw = document.getElementById('txtrePsw');
txtRegInv = document.getElementById('txtRegInv');
If (RePsw.value!="" && Psswd.value!="" && UsrNm.value!="" && RePsw.value==Psswd.value)
{
document.getElementById('btnRegCmplt').disabled="False";
}
else if(UsrNm.value=="")
{
UsrNm.value="Please Enter UserName";
}
else if(Psswd.value=="")
{
Psswd.value="Please Enter Password";
}
else if(RePsw.value=="")
{
RePsw.value="Does not match";
}
}
}
</script>
答案 0 :(得分:0)
你的代码非常混乱。编写简洁代码所必需的原因之一。括号错误,因此整个代码都没有执行(else
语句与function
相关联。)
If
语句不存在,请尝试使用if
(小写我)。
其他事项:
改为使用onkeyup
。
<强> 2 强> 对于你可以做的变种:
var UsrNm,
Psswd,
RePsw,
PostBackInfo
;
或强>
var UsrNm = document.getElementById('txtUsrNm'),
etc.
答案 1 :(得分:0)
语法错误
额外支撑}
`else
{
document.getElementById("txtPhNo").value='waiting';
document.getElementById("txtPhPop").value='waiting';
}
}
}`
在else条件
之后删除一个大括号