我有三个运行相同 PHP 脚本的文本输入框。PHP 脚本检查每个是否为空并生成搜索结果页面。问题是,脚本获取第一个已满的输入框。例如,如果我先填写 A,然后填写 B,然后在 B 处于活动状态并且是最新填写的情况下运行搜索,它会返回 A 的结果。如果我先填写 A,然后填写 C,然后填写 B,然后填写 C,也会出现同样的问题。
我一直在尝试找到一种方法来获得正确的搜索,而不必求助于拆分脚本并将每个单独的脚本附加到单独的输入框中,因为以后进行更改会很痛苦。
我有三个运行相同 PHP 脚本的文本输入框。PHP 脚本检查每个是否为空并生成搜索结果页面。问题是,脚本获取第一个已满的输入框。例如,如果我先填写 A,然后填写 B,然后在 B 处于活动状态并且是最新填写的情况下运行搜索,它会返回 A 的结果。如果我先填写 A,然后填写 C,然后填写 B,然后填写 C,也会出现同样的问题。
我一直在尝试找到一种方法来获得正确的搜索,而不必求助于拆分脚本并将每个单独的脚本附加到单独的输入框中,因为以后进行更改会很痛苦。
将onfocus
事件附加到记录哪个框处于活动状态的每个框。然后,将一个附加onsubmit
到检查哪个框上次活动的表单。空白其他两个,然后提交表格。像这样的东西(未经测试):
HTML:
<form action="phpscript.php" onsubmit="checkLastActive();">
Input 1: <input type="text" name="box1" id="box1" onfocus="lastActive=this.id"><br>
Input 2: <input type="text" name="box2" id="box2" onfocus="lastActive=this.id"><br>
Input 3: <input type="text" name="box3" id="box3" onfocus="lastActive=this.id"><br>
<input type="submit">
</form>
JavaScript:
var lastActive="";
function checkLastActive() {
for (var i=1; i<4; i++) {
if (lastActive != "box" + i) document.getElementById("box" + i).value="";
}
}