HTML文本字段输入只能接受1或0作为Perl中的值

时间:2014-03-24 07:42:52

标签: html perl module gentoo

请问,HTML如何接受只有1或0作为其值的文本字段输入? 有人能告诉我吗?我在perl中实现了这个HTML。

以下是我的代码示例:

#!/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语句吗?

2 个答案:

答案 0 :(得分:1)

在你的情况下,我认为最好使用带有1和0选项的dropbox,以使其更直观。如果您确实想使用文本框,请输入type = number,并且每次调用onchange事件时,验证当前值并在其无效时将其删除。

答案 1 :(得分:0)

要使0和1成为唯一接受的输入,请添加pattern属性:

pattern="0|1"

但是(除了旧浏览器缺乏支持),这并不妨碍用户输入其他内容。它只是意味着在表单提交时,将检查数据并在检查未通过时发出错误消息。此外,除非您还使用属性required

,否则空字符串也会通过

要实际阻止用户输入0或1以外的任何内容,您需要使用一小段JavaScript。

通常,当您只想接受两个值时,通常会选择复选框。

所有这些方法只是为了帮助用户,而不是为了安全。您的服务器端代码应该在使用它之前检查数据。