반응형
텍스트 입력을 클릭하면 양식 필드가 포커스를 바꿉니다.
아래에 검색 양식이 있는데 선택 입력 유형 2개와 키워드로 검색할 수 있는 텍스트 입력 필드 1개가 있습니다.어떤 이유에서인지 키워드 텍스트 상자를 클릭하면 바로 Category에 대한 첫 번째 선택 상자 드롭다운으로 포커스가 바뀌고 키워드 텍스트 상자에 아무것도 입력할 수 없습니다.왜 이런 일이 일어나는지 누가 알 수 있습니까?
$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> </p>
<p> </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"/>
제가 대신 라벨 태그를 탑 태그로 변경해서 문제를 해결한 것으로 보입니다.그것이 갈등을 극복한 것 같습니다.
키워드 텍스트 입력을 클릭한 후 포커스가 즉시 첫 번째 선택 상자로 다시 바뀌는 문제는 선택 입력을 둘러싼 요소로 인해 발생할 수 있습니다.기본적으로 입력 요소와 연결된 레이블을 클릭하면 포커스가 해당 입력 요소로 이동됩니다.
이 문제를 해결하기 위해 선택한 입력에 대한 레이블과 입력 요소를 구분하여 HTML 구조를 수정할 수 있습니다.코드의 업데이트 버전은 다음과 같습니다.
<p> </p>
<p> </p>
<h2>Search Completed Stories</h2>
<form name="search" method="get" action="http://example.com/searchB/">
<label for="category">Category:</label>
<select name="category" id="category">
<?php foreach($categories_list as $category) : ?>
<option><?php echo $category; ?></option>
<?php endforeach; ?>
</select>
<label for="rating">Rating:</label>
<select name="rating" id="rating">
<option value="">Any</option>
<?php foreach($ratings_list as $rating) : ?>
<option><?php echo $rating; ?></option>
<?php endforeach; ?>
</select>
<label for="keywords">Keywords:</label>
<input type="text" name="keywords" id="keywords">
<input type="hidden" name="active" value="0">
<input type="submit">
</form>
언급URL : https://stackoverflow.com/questions/31215727/form-field-changes-focus-when-i-click-on-the-text-input
반응형
'programing' 카테고리의 다른 글
Xcode의 All Exceptions 중단점을 사용할 때 특정 예외 무시 (0) | 2023.11.07 |
---|---|
*nnnng-template 출력에 대해 각도2가 없습니다. (0) | 2023.11.07 |
팩트 테이블과 차원 테이블의 차이? (0) | 2023.11.07 |
Spring Security 및 @Async(인증된 사용자 혼합) (0) | 2023.11.07 |
사용자 입력을 허용하지 않는 텍스트 입력이 있는 jQuery Datepicker (0) | 2023.11.02 |