gpt4 book ai didi

javascript - value() 和 focus() 不起作用

转载 作者:行者123 更新时间:2023-11-28 06:56:41 25 4
gpt4 key购买 nike

所以我正在开发一款使用 JS/PHP 动态加载的游戏。我唯一的问题是我无法让我的 JS 验证码代码获取所选文本区域 (cAnswer) 的值,并将其从 botcheck.php 发送到 do.php 以检查验证码是否输入正确。

.focus() 也不聚焦于 cAnswer 文本输入。

这是我的代码...

TieSCRIPT.JS

Tie = function() { };

Tie.id = function (what) { // Shortens the document.getElementById() function
return document.getElementById(what);
}

Tie.enc = function (what) { // Encoding URL stuff
return encodeURIComponent(what);
}

Tie.deco = function (what) { // Then Decoding the reply
return decodeURIComponent(what);
}

Tie.loadDiv = function(where,url,data) {
//clearTimeout(timer);
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else { // Crap IE
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
Tie.id(where).innerHTML = xmlhttp.responseText;
} else {
return false;
}
}
if (!data) {
data = "";
}
data = data.replace(/: /gi, "=");
data = data.replace(/:/gi, "=");
data = data.replace(/, /gi, "&");
data = data.replace(/,/gi, "&");
xmlhttp.open("POST",url,true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send(data);
}

Tie.request = function (url, data) { // Ajax request
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else { // Crap IE
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
data = xmlhttp.responseText.split("|");
for (i = 0; i < data.length; i++){
var one = Tie.deco(data[parseInt(i)]);
var two = Tie.deco(data[parseInt(i) + 1]);
var three = Tie.deco(data[parseInt(i) + 2]);
var four = Tie.deco(data[parseInt(i) + 3]);
var five = Tie.deco(data[parseInt(i) + 4]);

if (window.Tie[one]) { // echo out a Tie.* command from php file.
window.Tie[one](two,three,four,five);
}
}
} else {
return false;
}
}
if (!data) {
data = "";
}
data = data.replace(/: /gi, "=");
data = data.replace(/:/gi, "=");
data = data.replace(/, /gi, "&");
data = data.replace(/,/gi, "&");


xmlhttp.open("POST",url,true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send(data);
}

Tie.alterDiv = function(where,what) { // Shortening again.
if (Tie.id(where)) {
Tie.id(where).innerHTML = what;
}
}


Tie.getCaptcha = function () {
Tie.loadDiv("popUp","botcheck.php");
Tie.id("cAnswer").focus();
}

Tie.submitCaptcha = function () {
var answer = Tie.enc(Tie.id("cAnswer").value);
Tie.request("do.php", "p: submitCaptcha, a: " + answer);
Tie.enc(Tie.id("cAnswer").value = "");
}

BOTCHEC.PHP

<?php
include('connect.php');
?>
<div id="popUpBotContent">
<center>
<p>Please enter the WHITE numbers only...</p><br />
<div id="captchaPicture"><img src="validate.php" width="120" height="60" id="captcha"></div><br />
<input type="text" id="cAnswer" size="5" maxlength="3" onkeydown="if (event.keyCode == 13) { Tie.submitCaptcha(); fade('popUpBotContent'); return false; }" />
<input type="submit" onClick="Tie.submitCaptcha();slide('popUpBotContent');" value="Submit" />
<br /><br />
</center>
</div>

DO.PHP

<?php
include('connect.php');

$a = $_POST['cAnswer'];
$lastAction = $info['last_action'];
$lastActionTime = $info['user_timer_end'];
$now = time() - 180;

IF (isset($_POST['cAnswer'])) { $p = "submitCaptcha"; } else { $p = "none"; }

IF ($p == "submitCaptcha" && $a == $info['bot_num']) { // captcha
$botTime = time() + 900 + rand(60,300);
mysql_query("UPDATE `user_info` SET `next_botcheck` = '$botTime' WHERE `user_id` = '$info[user_id]'");
mysql_query("UPDATE `user_info` SET `botcheck` = '0' WHERE `user_id` = '$info[user_id]'");
$newTime = date("H:i", $botTime);
echo "alterDiv|botTime|$newTime|";
} else IF ($p == "submitCaptcha" && $a != $info['bot_num']) { // captcha
echo "getCaptcha|";
}
?>

我知道这需要经历很多事情,但任何意见都将不胜感激。希望我没有遗漏任何东西。

如果需要更多信息,请告诉我。

谢谢!

最佳答案

好的,所以焦点不起作用,因为当您调用它时该元素不存在。你用ajax生成元素,巫婆是异步的。当你聚焦它时,它还没有生成。

我建议您在 loadDiv 中添加一个带有函数名称的新输入,它将充当回调,您可以在内容添加到页面后调用它。

我认为您有相同的流量问题。

只是为了测试这是否确实是问题所在:将 xmlhttp 请求的异步选项添加为 false。

关于javascript - value() 和 focus() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32517437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com