Я следую форме
<form method="post" action="getParameterValuesServlet">
<table border="1">
<tr>
<td>User Name</td>
<td><input type="text" name="userName"></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td>Gender</td>
<td>
<input type="radio" name="gender" value="male">Male<br>
<input type="radio" name="gender" value="female">Female<br>
</td>
</tr>
<tr>
<td>Hobbies</td>
<td>
<input type="checkbox" name="hobbies" value="cycling">Cycling<br>
<input type="checkbox" name="hobbies" value="swimming">Swimming<br>
<input type="checkbox" name="hobbies" value="treking">Treking<br>
</td>
</tr>
<tr>
<td>City</td>
<td>
<select name="city" multiple>
<option value="mysore">Mysore</option>
<option value="pune">Pune</option>
<option value="chandigarh">Chandigarh</option>
</select>
</td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Register"></td>
</tr>
</table>
</form>
Когда я отправляю эту форму без ввода или выбора каких-либо значений, я вижу только пустое имя пользователя и пароль (текст и пароль) в теле сообщения (то же самое происходит с строкой запроса GET)
Почему не переключаются кнопки, флажок и выпадающие значения со значениями по умолчанию?
Еще одна вещь, если я удаляю атрибут "множественный" из тега "select", появляется первый вариант.
Будем благодарны, если кто-то объяснит это поведение !!
FYI, я использую инструмент Fiddler Web Debugger для отслеживания запроса и ответа и отправки этой формы в Java-сервлет
Вы можете использовать скрытое поле с резервным значением, если флажок в форме представлен непроверенным:
<input type="hidden" name="hobbies" value="">
<input type="checkbox" name="hobbies" value="swimming">Swimming<br>
Это, похоже, работает и с переключателями:
<input type="hidden" name="gender" value="">
<input type="radio" name="gender" value="male">Male<br>
<input type="radio" name="gender" value="female">Female<br>
Какие значения по умолчанию вы планируете отправить?
Единственными значениями, которые отправляются, являются выбранные параметры; поскольку не выбраны никакие параметры, туда нечего отправлять.
Это в отличие от text
и password
элементов управления, которые всегда имеют значение, даже если это значение является пустой строкой.