Javascript 当第二个输入框填充第一个框中的数据时显示警报
我随身携带此代码:Javascript 当第二个输入框填充第一个框中的数据时显示警报,javascript,html,ajax,Javascript,Html,Ajax,我随身携带此代码: <input id="qfront" name="qfront" placeholder="Ketik Nama Kampus ..." value="" type="text" onKeyPress="strQuery(this.value)"/> *<!--first inputbox-->* <script> function strQuery(str) { if (str.length == 0) { d
<input id="qfront" name="qfront" placeholder="Ketik Nama Kampus ..."
value="" type="text" onKeyPress="strQuery(this.value)"/> *<!--first inputbox-->*
<script>
function strQuery(str) {
if (str.length == 0) {
document.getElementById("valdata").value = "";
return;
} else {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("valdata").value = xmlhttp.responseText;
}
}
xmlhttp.open("POST", "inc.php?q="+str, true);
xmlhttp.send(null);
}
}
</script>
<input id="valdata" name="valdata" value="" type="text" onChange="showalert()"/>*<!--2nd inputbox-->*
<script>
function showalert(){
var X =document.querySelector("#valdata").value;
alert(X);
}
</script>
**
函数strQuery(str){
如果(str.length==0){
document.getElementById(“valdata”).value=“”;
返回;
}否则{
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
document.getElementById(“valdata”).value=xmlhttp.responseText;
}
}
open(“POST”,“inc.php?q=“+str,true”);
xmlhttp.send(空);
}
}
**
函数showalert(){
var X=document.querySelector(“#valdata”).value;
警报(X);
}
当我运行函数strQuery(str)
时,它100%工作,并在第二个输入框(#valdata
)中显示结果。当第二个输入框包含数据时(来自第一个输入框)。第二个框不显示警报
我错过什么了吗?我该怎么做?(请不要使用jquery)。非常感谢在
showart()之后似乎缺少了双引号代码>
但另外,我认为onchange可能只响应用户的输入。如果是这种情况,只需将代码更改为:
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("valdata").value = xmlhttp.responseText;
document.getElementById("valdata").onchange();
}
我终于找到了解决我问题的办法。
我将第二个JS(showalert)的位置固定到第一个JS中,如下所示:
<input id="qfront" name="qfront" placeholder="Ketik Nama Kampus ..."
value="" type="text" onKeyPress="strQuery(this.value)"/>
<script>
function strQuery(str) {
if (str.length == 0) {
document.getElementById("valdata").value = "";
return;
} else {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("valdata").value = xmlhttp.responseText;
showalert()
}
}
xmlhttp.open("POST", "inc.php?q="+str, true);
xmlhttp.send(null);
}
}
function showalert(){
var X =document.querySelector("#valdata").value;
alert(X);
}
</script>
<input id="valdata" name="valdata" value="" type="text"/>
函数strQuery(str){
如果(str.length==0){
document.getElementById(“valdata”).value=“”;
返回;
}否则{
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
document.getElementById(“valdata”).value=xmlhttp.responseText;
showarert()
}
}
open(“POST”,“inc.php?q=“+str,true”);
xmlhttp.send(空);
}
}
函数showalert(){
var X=document.querySelector(“#valdata”).value;
警报(X);
}
非常感谢您的讨论。请澄清-问题是,当第二个有数据/字符串时,警报不会显示。请。我已经编辑了我的问题。您的意思是,如果第二个输入框有一个值xyz
,然后当您运行strQuery
功能时,警报不会显示?是的。就这样。xyz来自第1输入框需要检查什么?不,不是双重事件。好的,让我编辑我的question@HermanNz这很奇怪-哦,我错了-我会删除我之前的评论