Ввод текстового поля HTML может принимать только 1 или 0 в качестве значения в Perl

0

могу ли я спросить, как HTML может принимать ввод текстового поля с 1 или 0 в качестве его значения? Может ли кто-нибудь показать мне? Я реализую этот HTML-код в своем perl.

Вот пример моего кода:

#!/usr/bin/perl
#index5.cgi

require 'foobar-lib.pl';
ui_print_header(undef, $module_info{'desc'}, "", undef, 1, 1);
ui_print_footer("/", $text{'index'});
#print "Content-type:text/html\n\n";
print qq~<html>
<link rel="stylesheet" type="text/css" href="style.css">
<body>

<div id="content">
<div id="bar">
<span><p>Data Gateaway</p></span>
</div>
<div id="main-container">
<table border="0" width="100%" height="100%">
<tr>
<td colspan="5">
<div id="button">
<form action="index.cgi">
<input type="submit" value="Back">
</form>
</div>
</td>
</tr>
<tr>
<td width="25%" align="left">
<div id="title"><span>BYPASS :</span></div>
</td>
<td width="20%">
<form method="POST" action="index7.cgi">
<td width="20%">
<table border="0" style=\"text-align:top;font-family:Arial, Helvetica, sans-serif;\" cellpadding="5">
<tr>
<td width="20%"><div id="data">Use either "1" or "0" to change value for <b>Basics Bypass</b>:</div></td>
</tr>
</table>
</td>
<td align="left" width="7%">
<table border="0" style=\"text-align:center;font-family:Arial, Helvetica, sans-serif;\" cellpadding="2">
<td>
<tr>
<td width="7%">
<input type="text" maxlength="1" name="voca" size="1">
</td>
</tr>
<tr>
<td width="7%">
<input type="text" maxlength="1" name="vocb" size="1">
</td>
</tr>
<tr>
<td width="7%">
<input type="text" maxlength="1" name="vocc" size="1">
</td>
</tr>
<tr>
<td width="7%">
<input type="text" maxlength="1" name="vocd" size="1">
</td>
</tr>
</td>
</table>
</td>
</tr>
<tr>
<td colspan="5">
<div id="description"><b>Description :</b></div>
</td>
</tr>
<tr>
<td colspan="5">
<div id="button">
<input type="submit" value="Change Default Settings"><input type="reset" value="Clear">
</form>
</div>
</td>
</tr>
</table>
</div>
</div>
</body>
</html>
~;

Какую функцию я должен добавить для того, что ввод текстового поля в HTML может принимать только значение 1 или 0? Может ли кто-нибудь научить меня, как? Нужно ли использовать if..else?

  • 1
    Это 2014 год, и вы все еще пишете CGI-программы, которые включают в свой код Perl необработанный HTML. Прошло более пятнадцати лет с тех пор, как мы разработали, какая это была ужасная идея.
  • 0
    Я просто хочу учиться. Это не неправильно учиться, даже это давным-давно, не так ли? Я просто хочу попробовать и научиться. @Dave Cross
Показать ещё 2 комментария
Теги:
module
gentoo

2 ответа

1
Лучший ответ

В вашем случае я считаю, что лучше использовать dropbox с параметрами 1 и 0, чтобы сделать его более интуитивным. Если вы действительно хотите использовать текстовое поле, введите input type = number, и каждый раз, когда вызывается событие onchange, проверьте текущее значение и удалите его, если он недействителен.

  • 0
    Я не могу использовать радиокнопку, Dropbox или что-то еще, потому что у меня так много полей, которые нужно заполнить. Поэтому мне нужно было использовать текстовое поле, чтобы оно выглядело более удобным для пользователя. Но кроме этого, я постараюсь сделать это по вашему предложению. Надеюсь, что это работает. @Aviran
  • 0
    Наличие выпадающего меню не помешает кому-либо вручную обработать запрос, содержащий другое значение. Вы должны проверить это на стороне сервера тоже.
Показать ещё 1 комментарий
0

Чтобы сделать 0 и 1 единственным принятым вводом, добавьте атрибут pattern:

pattern="0|1"

Но (в дополнение к отсутствию поддержки в старых браузерах) это не мешает пользователю вводить что-то еще. Это просто означает, что при отправке формы данные проверяются и выдается сообщение об ошибке, если проверка не проходит. Более того, пустая строка также пройдет, если вы также не используете required атрибут.

Чтобы фактически запретить пользователю вводить ничего, кроме 0 или 1, вам нужно будет использовать небольшой фрагмент JavaScript.

В общем случае флажки обычно предпочтительнее, когда есть только два значения, которые вы хотите принять.

И все такие методы предназначены только для помощи пользователю, а не для безопасности. Ваш код на стороне сервера должен проверять данные, прежде чем что-либо делать с ним.

  • 0
    Я постараюсь реализовать это. Но я действительно не хочу, чтобы javascript включался в мое кодирование. Но я попробую. Спасибо приятель. @jukka

Ещё вопросы

Сообщество Overcoder
Наверх
Меню