Область ввода текста в IE-области «кликабельная», ширина всего 1 пиксель - PullRequest
0 голосов
/ 20 марта 2011

У меня есть простая форма ввода с полями ввода шириной 3 символа. Однако, чтобы сфокусироваться на этих полях, я должен щелкнуть очень, очень ВЛЕВО поля, шириной около 1 пикселя или ширины курсора. Форма отлично работает в Firefox и Safari, где вы можете щелкнуть в любом месте поля ввода текста, чтобы получить фокус.

Форма:

<form name=game_edit method=post action="?includepage=game_results.php&gameID=<?=$gameID?>" onsubmit="return validate_form();">
<table border="0" id=gameResults>
<tr><th colspan="4">RESULTS FOR: <?=$gamedate?> HOSTED BY <?=$hostName?></th></tr>
<tr>
    <td colspan="2">PLAYERS: <input type=text name=playercount value="<?=$playercount?>" size="3"></td>
    <td colspan="2">Championship money colleted: $<?=$champamount?></td>
</tr>
<tr><th>PLAYER</th><th>Place</th><th>Champ Discount</th><th>Didn't play</th></tr>
<? Player_list($gameID); ?> 
<tr><td colspan="2"><input type="text" name="manualAdd" size="17" /></td><td colspan="2">Add a username who didn't RSVP</td></tr>
<input type=hidden name=gameID value="<?=$gameID?>">
<tr>
    <td colspan="2"><input type=submit name='saveGameResults' value='SAVE CHANGES' style='width:100px;font-size:11px;'></td>
    <td colspan="2" align="right"><input type=submit name='saveGameResults' value='LOCK GAME' style='width:100px;font-size:11px;'></td>
</tr>
</table>

Функция, которая записывает поля:

function player_list($gameID)
//////////////////////////////////////////////
//  Creates player list for specified       //
//  game. Provides input for game results.  //
//////////////////////////////////////////////
{
    //*****Get list of players for gameID*****
    $sql = "SELECT rsvpid,rsvp.playerid,concat(fname,' ',lname) as playerName,place,points,freeChamp FROM rsvp LEFT JOIN players ON rsvp.playerid=players.id WHERE rsvp.gameID=$gameID ORDER BY place,lname";
    $playerlist = mysql_query($sql);

    if ($listrow = mysql_fetch_array($playerlist))
    {
        #--Get number of players who signed up on the website. This may differ from the actual player count --#
        #--entered by the host. A player may have played but not be signed up on the website.               --#
        echo "<input type=hidden name='recordedPlayerCount' value='".mysql_num_rows($playerlist)."'>";
        $i = 0;     // index for form rows      
        do
        {
            foreach($listrow as $key=>$value) $$key = $value;
            ($freeChamp) ? $freeChampChecked = "checked" : $freeChampChecked = "";  //check the freechamp box if appropriate.
            if ($place==100) $place="";
?>
            <tr> 
                <td><?=$playerName?>:</td>
                <td style="text-align:center"><input type=text size="2" name="place<?=$i?>" value="<?=$place?>"></td>
                <td style="text-align:center"><input type=checkbox name="freeChamp<?=$i?>" value='true' <?=$freeChampChecked?>></td>
                <td style="text-align:center"><input type=checkbox name="noShow<?=$i?>" value='true'></td>
                <input type=hidden name="rsvpid<?=$i?>" value="<?=$rsvpid?>">
            </tr>
<?
            $i++;   //increment index for next row
        }while ($listrow = mysql_fetch_array($playerlist));
    }else
        echo "<tr><td colspan='4'>NO RECORDS FOUND FOR THIS GAME!</td></tr>";
}
?>

Поле формы, вызывающее помехи, - это поле "место" ... оно доступно только в левой части поля формы вместо всего поля формы, только в IE. (IE 7, о котором я знаю).

Помощь

Ответы [ 2 ]

0 голосов
/ 21 марта 2011

Спасибо за советы, Майкл.Нашел проблему.У меня есть горизонтальное выпадающее меню, управляемое css (http://www.udm4.com/) в div заголовка, которое опускается над div контента. Кроме того, у меня есть панель входа в систему, управляемая javascript, которая может опускаться над div заголовка. При игре сz-индексы, чтобы все воспроизводилось хорошо, я установил для div содержимого, содержащего форму, значение z-index, равное -1. ​​Даже после удаления всего, кроме этого одного div и этой формы, IE не любит отрицательные z-индексыЯ не знаю, составляют ли отрицательные z-индексы действительный CSS, и IE просто снова становится медлительным, или другие браузеры слишком мягки.

0 голосов
/ 20 марта 2011

Я готов поспорить, что виновник устанавливает размер элемента ввода равным 2. Сделайте снимок и дайте мне знать, работает ли он лучше:

<td style="text-align:center"><input type=text size="3" maxlength="2" name="place<?=$i?>" value="<?=$place?>"></td>

Есть другие вещи, которые я заметил в вашем коде:

<tr><th>PLAYER</th><th>Place</th><th>Champ
Discount</th><th>Didn't play</th></tr>
<? Player_list($gameID); ?>

Вы вызываете функцию «Player_list ()», но ваша функция называется «player_list ()».

foreach($listrow as $key=>$value) $$key = $value;

совпадает с:

extract($listrow);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...