Das Formularfeld ändert den Fokus, wenn ich auf die Texteingabe klicke

Lesezeit: 3 Minuten

Benutzer-Avatar
JA4677

Ich habe unten ein Suchformular mit zwei ausgewählten Eingabetypen und einem Texteingabefeld, in dem der Benutzer nach Schlüsselwörtern suchen kann. Aus irgendeinem Grund wechselt der Fokus jedes Mal, wenn ich auf das Textfeld „Keywords“ klicke, sofort wieder auf das erste Dropdown-Menü des Auswahlfelds für „Category“ und „I“, sodass ich nichts in das Textfeld „Keywords“ eingeben kann. Kann jemand sehen, warum dies geschieht?

$categories_list = array();
$ratings_list = array();

try {
$query = $dbh->query("SELECT category, genre, rating FROM posts WHERE 1
GROUP BY category, genre, rating");
$query->setFetchMode(PDO::FETCH_ASSOC);
$iterator = new IteratorIterator($query);
foreach ($iterator as $row) {
    if (empty($row['category']) == false && !in_array($row['category'],
$categories_list))
        $categories_list[] = $row['category'];
    if (empty($row['rating']) == false && !in_array($row['rating'],
$ratings_list))
        $ratings_list[] = $row['rating'];
}
} catch (Exception $e) {
echo '<p>', $e->getMessage(), '</p>';
}
?>


<p>&nbsp;</p>
<p>&nbsp;</p>
<h2>Search Completed Stories</h2>
<form name="search" method="get" 
action="http://example.com/searchB/">
<label>
    Category:
    <select name="category">
        <?php foreach($categories_list as $category) : ?>
            <option><?php echo $category; ?></option>
        <?php endforeach; ?>
    </select>
</label>
<label>
    Rating:
    <select name="rating">
            <option value="">Any</option>
        <?php foreach($ratings_list as $rating) : ?>
            <option><?php echo $rating; ?></option>
        <?php endforeach; ?>
    </select>
</label>
<label>
    Keywords:
    <input type="text" name="keywords">
</label>
<input type="hidden" name="active" value="0">
<input type="submit"/>

  • Das Ändern des Fokus wird normalerweise durch eine Art Javascript verursacht, aber ich sehe kein JS in Ihrem Code. Soweit ich weiß, kann PHP den Fokus nicht zurücksetzen, nachdem die Seite bereits geladen ist.

    – Eiswürfel

    4. Juli 2015 um 1:03 Uhr

  • Ich denke, das könnte es sein. Sie haben Recht, dass ich nirgendwo auf der Seite JS verwende.

    – JA4677

    4. Juli 2015 um 1:05 Uhr

  • Seltsamerweise funktioniert es auf einer Entwicklungsseite gut. Aber wenn ich diesen Code auf einer anderen Seite platziere, die eine andere Ergebnisliste hat, dann bekomme ich dieses Fokusproblem mit dem Textfeld zur Eingabe von Schlüsselwörtern

    – JA4677

    4. Juli 2015 um 1:10 Uhr

  • Nun, in Ihrem obigen Code gibt es nichts, was zu einer Änderung des Fokus führen wird. Es muss also etwas anderes passieren. Sie können versuchen, zusätzlichen Code bereitzustellen oder, falls es keine andere Möglichkeit gibt, einen Link bereitzustellen, auf dem dieses Skript ausgeführt wird. Vielleicht kann ich mehr sehen, wenn ich es tatsächlich sehe.

    – Eiswürfel

    4. Juli 2015 um 1:12 Uhr


  • Danke für das Angebot, aber es scheint das WordPress-Template zu sein, das das Problem verursacht. Ich habe genau den gleichen Code auf einer anderen WordPress-Vorlage verwendet und es funktioniert gut.

    – JA4677

    4. Juli 2015 um 1:20 Uhr

Anscheinend habe ich das Problem gelöst, indem ich stattdessen einfach die Label-Tags in p-Tags geändert habe. Ich denke, das hat den Konflikt umgangen.

1366710cookie-checkDas Formularfeld ändert den Fokus, wenn ich auf die Texteingabe klicke

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy