在我的表单按钮的onClick属性中,调用了一个javascript函数。在这个函数中,测试是否填充了字段。当文本字段填充了值时,还调用Ajax函数,以测试该值是否已存在于Mysql数据库中。我的问题是,当到达ajax函数时,其余的javascript测试都没有执行,尽管还有一些字段没有填写。那么如何执行剩余的测试呢?
这是我的代码:
<input type="button" name="btn_Valider" id="btn_Valider" value="Valider" class="bouton2" onClick="testerDonneesForm();"/>
function testerDonneesForm(){
if (document.frm_Produit.prod_code.value == "") {
alert( "Le champ ''Code produit'' ne doit pas être vide!");
document.frm_Produit.prod_code.focus;
return false;
}
else if (document.frm_Produit.prod_code.value != "") {
ajaxRechercherCodeProduit();
}
else if (document.frm_Produit.type_prod_code.value == "") {
alert( "Le champ ''Type code produit'' ne doit pas être vide!");
document.frm_Produit.prosp_cin.focus;
return false;
}
else {
document.getElementById("frm_Produit").submit() ;
}
}
function trim (myString)
{
return myString.replace(/^\s+/g,'').replace(/\s+$/g,'');
}
function ajaxRechercherCodeProduit() {
var g_XhrObject = get_Xhr() ;
var prod_code = document.getElementById('prod_code').value;
var url = '<?php echo HTTP_AJAX ?>Produit/ajaxVerifieCodeProduit.php?prod_code='+prod_code;
if (g_XhrObject) {
g_XhrObject.onreadystatechange = function()
{
if (g_XhrObject.readyState == 4 && g_XhrObject.status == 200) {
if (trim(g_XhrObject.responseText) != "0")
{
alert(g_XhrObject.responseText);
return false;
}
}
}
g_XhrObject.open("POST", url, true) ;
g_XhrObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded') ;
g_XhrObject.send(null);
}
}
答案 0 :(得分:1)
您希望测试是单个if
语句,而不是单个else if
语句的if
部分。使用if-else if-else
语句,只要发现其中一个条件为真,或者执行了else条件(以上条件都不为真),执行就会移过if结构的末尾。< / p>