1

У меня проблемы с этой конкретной формой, мне нужно сначала выбрать значение, а затем отправить форму. Функция отправки формы хороша, однако выбрано значение выбора по умолчанию во всех браузерах, и оно допустимо, за исключением IE, в котором не выбрано значение выбора по умолчанию. В IE по умолчанию ничего не выбрано.Выберите проблемы в IE9 - в других браузерах он отлично работает

Как исправить это?

Изображение проблемы: the selection form

:

<select name="formQuality" id="formQuality" value="acceptable"> 
 
    <option value="acceptable">Acceptable</option> 
 
    <option value="good">Good</option> 
 
    <option  value="better">Better</option> 
 
    <option value="excellent">Excellent</option> 
 
    <option value="best">Best</option> 
 
    </select>

<?php 
 
if(isset($_POST['SubmitButton'])){ //check if form was submitted 
 
$input = $_POST['inputText']; //get input text 
 
$varQuality = $_POST['formQuality']; 
 
$message = "Success! You entered: ".$input; 
 
}  
 
?> 
 

 
<br> 
 
<form action="" method="post"> 
 
    <h1>Choose Quality:</h1> 
 
    
 
    <?php 
 
     $thequa = htmlspecialchars($_POST['formQuality']); \t \t \t \t \t \t 
 
    ?> 
 
    
 
    <select name="formQuality" id="formQuality" value="<?php echo $thequa;?>"> 
 
    <option <?php if ($thequa1 == 'acceptable') { ?>selected="true" <?php }; ?> value="acceptable">Acceptable</option> 
 
    <option selected="true" value="acceptable">Acceptable</option> 
 
    <option <?php if ($_POST['formQuality'] == 'good') { ?>selected="true" <?php }; ?> value="good">Good</option> 
 
    <option <?php if ($_POST['formQuality'] == 'better') { ?>selected="true" <?php }; ?> value="better">Better</option> 
 
    <option <?php if ($_POST['formQuality'] == 'excelent') { ?>selected="true" <?php }; ?> value="excellent">Excellent</option> 
 
    <option <?php if ($_POST['formQuality'] == 'best') { ?>selected="true" <?php }; ?> value="best">Best</option> 
 
    </select> 
 
    
 
    <textarea name="inputText" cols="100" rows="20" style="border:solid 1px orange;"><?php echo $thetext;?></textarea> 
 
    <p> 
 
    <input type="submit" value="Rewrite" name="SubmitButton"/> 
 
    
 
</form>

+1

Если у вас есть вопрос о браузерах, гораздо лучше разместить фактическую разметку, которую получает браузер, а не код сервера, который ее генерирует. Атрибут * selected * имеет значение boolean, оно не требует значения. В XHTML ему присваивается значение «selected», но только для удовлетворения требований XML, а не потому, что оно действительно необходимо. – RobG

+0

ОК, я сделал это сейчас. – Brana

+0

Хорошо, я сделал это, и он отлично работает на тестовом бите stackoverflow не в IE. – Brana

ответ

0

Предполагаемый способ предварительного выбора опции - установить атрибут selected в элементе option, вместо добавления атрибута value в поле выбора.

<select name="formQuality" id="formQuality"> 
 
<option value="acceptable" selected>Acceptable</option> 
 
<option value="good">Good</option> 
 
<option value="better">Better</option> 
 
<option value="excellent">Excellent</option> 
 
<option value="best">Best</option> 
 
</select>

Это дает ожидаемый результат во всех браузерах, включая IE.

0

Использовать выбранный = "выбрано" Мол,

<option value="My Default" selected="selected"> 

сделать вариант как по умолчанию выбранного значения. Это работает во всех браузерах.

Смежные вопросы