.innerHTML被禁止其他功能?

时间:2015-03-04 16:47:13

标签: javascript

我希望按钮上有其他文字,直到验证进度。 但.innerHTML不会改变HTML。



var keeybtn = document.getElementById('kyloginbtn');
    
function checkForm() {
	keeybtn.innerHTML = 'Go';
    var email = document.getElementById("kymail").value;
    if (email === '') {
        keeybtn.innerHTML='Fill Email field';
		message();
		
		return false;
    }
    else {
        document.getElementById("kyloginform").submit();
        validate(email);
    }
}




当我注释掉"验证(电子邮件)"它起作用。



function validate(email) {
	var xmlhttp;
		
	if (window.XMLHttpRequest)
	  {// for IE7+, Firefox, Chrome, Opera, Safari
	  xmlhttp=new XMLHttpRequest();
	  }
	else
	  {// for IE6, IE5
	  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	  }	
	  
	    xmlhttp.onreadystatechange = function()
	    {
	        if (xmlhttp.readyState != 4 && xmlhttp.status == 200) {
	            keeybtn.innerHTML = "Validating..";
	        }
	        else if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
	            keeybtn.innerHTML = xmlhttp.responseText;
	            if(xmlhttp.responseText == "ok") {
		            reloadPage();
	            }
	            else {
		            message();
	            }
	        }
	        else {
	            console.log("Error");
	        }
	    }
	    xmlhttp.open("GET", "pk-login.php?email=" + email, false);
	   
	xmlhttp.send();
}




如果一切都有效,xmlhttp.Text会出现在按钮上。

2 个答案:

答案 0 :(得分:0)

您可以通过以下示例实现此目的:

<form id="kyloginform" action="#" method="post">
    <input type="text" id="kymail" value="" />
    <button type="submit" id="kyloginbtn" onclick="return checkForm()">Submit</button>
</form>

function checkForm() {
    var button = document.getElementById('kyloginbtn');
    button.innerHTML = 'Submitting';
    var email = document.getElementById("kymail").value;
    if (email === '') {
        button.innerHTML = 'Please fill in email field';
        message();

        // Prevent form submit when validation error.
        return false;
    }
    else {
        document.getElementById("kyloginform").submit();
        validate(email);
    }
}

有关工作示例,请参阅此小提琴http://jsfiddle.net/zeskysee/n7tevL7y/16/

希望这有帮助:)

答案 1 :(得分:0)

找到解决方案,ajax调用必须设置为async

xmlhttp.open("GET", "pk-login.php?email=" + email, true);