是否有生成格式良好的表单的标准?

时间:2010-07-27 13:53:14

标签: php html css forms

我想知道表格是否有标准。我的意思是,当你用HTML编写表单时,通常会根据需要编写表单,而不考虑HTML结构。

我问这个是因为我正在使用PHP中的Form生成器。我想让一些易于使用的东西和生成的HTML代码易于CSS自定义。

Zend,Symphony有一些Form生成器,但我发现它们有点难以使用。 Zend(每种类型的输入类)和Symfony中的概念太多,你必须嵌入整个框架。

因此,如果我们能够为各种形式找到一个相当不错的表单结构标准,那么对我的工作和每个人来说都可能是一个很好的进步:)

6 个答案:

答案 0 :(得分:1)

您是否看过CakePHPCodeIgniter表单助手?他们可能会为您的表单生成器提供一些好主意。

答案 1 :(得分:1)

此处描述了标准:http://www.w3.org/TR/html401/interact/forms.html

不确定你究竟在问什么

答案 2 :(得分:1)

易于样式的表单的标准HTML结构是:

<form>
    <div>
        <label for="input-text">Input text:</label>
        <input type="text" id="input-text" name="input-text"/>
    </div> 
    <div>
        <label for="select-text">Select text:</label>
        <select id="select-text" name="select-text">
            <option value="1">Yes</option>
            <option value="0">No</option>
        </select>
    </div> 
    <div class="buttons">
        <input type="submit" value="Submit"/>
        <input type="reset" value="Reset"/>
    </div>
</form>

以上内容允许您使用<div>设置字段行的样式,而<label><input>结构可以轻松创建字段的行或列。

最后<div class="buttons">允许将特殊样式应用于表单的按钮。

您可能还需要考虑的一件事是查看<fieldset>标记以对相关字段进行分组。

答案 3 :(得分:1)

没有标准设置。表单以表单元素开头并包含输入控件。你如何构建它们依赖于表单应该提交的内容以及你的(X)HTML风格的规范允许的内容。

有些开发人员可能需要字段集,有些则不需要。有些人可能需要在UL内部构建输入,有些人更喜欢DL。如果不将开发人员锁定到特定结构,那么您无法在此标准化。 ZF解决了这个问题,但付出了更多的复杂性。

答案 4 :(得分:0)

关键是要确保HTML在技术上是正确的。 This site会为您检查。

确保网站accessible也是一种良好的做法 - 不仅仅是为了避免排除残疾人 - 大部分都是关于良好的人体工程学并确保对所有网络平台的广泛支持。

FWIW,我开始编写一个表单生成器 - PfP Studio - 它仍然有很多粗糙的边缘,我最近没有找到时间来处理它。您可能还想看看Prado,Radria,phpeanuts和phpformgen。

HTH

下进行。

答案 5 :(得分:0)

plzease在这里找到一个有效的表格,其中考虑了所有辅助功能:

<div class="user" id="user-001">
    <form method="post" action="index.html" id="userform" name="userform">
    <fieldset>
        <legend>User Data</legend>
        <div id="field-username" class="field mandatory">
            <div class="label"><label for="username">User</label></div>
            <input type="text" id="username" name="username" tabindex="1" accesskey="U" value="" default="Utilisateur" title="Please choose a unique and funny Username" size="30" maxlengtth="30" />
        </div>
        <div  id="field-firstname" class="field">
            <div class="label"><label for="firstname">Firstname</label></div>
            <input type="text" id="firstname" name="firstname" tabindex="1" accesskey="N" value="" default="nom" title="Fill your Firstname" size="30" maxlengtth="30" />
        </div>
        <div  id="field-lastname" class="field">
            <div class="label"><label for="lastname">Lastname</label></div>
            <input type="text" id="lastname" name="lastname" tabindex="1" accesskey="m" value="" default="nom" title="Fill your own Lastname" size="30" maxlengtth="30" />
        </div>
        <div id="field-password1" class="field mandatory">
            <div class="label"><label for="password1">password</label></div>
            <input type="password" id="password1" name="password1" tabindex="1" accesskey="d" value="" default="******" title="Set a personal password" size="30" maxlengtth="30" />
        </div>
        <div  id="field-password2" class="field mandatory">
            <div class="label"><label for="password2">Password again</label></div>
            <input type="password" id="password2" name="password2" tabindex="1" accesskey="d" value="" default="******" title="Set again your password for validation purpose" size="30" maxlengtth="30" />
        </div>
        <div  id="field-email" class="field" >
            <div class="label"><label for="email">Mail</label></div>
            <input type="text" id="email" name="email"  tabindex="2" accesskey="S" value="" default="email@domain.com" title="Please fill-in a valide email" size="30" maxlengtth="100" />
            <div class="sample">ex: firstname.lastname@domain.com</div>
        </div>
        <div  id="field-datestart" class="field mandatory typedate" >
            <div class="label"><label for="datestart">Active from </label></div>
            <input type="date" id="datestart" name="datestart"  tabindex="3" accesskey="C" value="" title="Input the date of user account activation." />
            <div class="sample">ex: 17/05/2010</div>
        </div>
    </fieldset>
    <div class="command">
    <button type="submit" name="send" id="send" accesskey="E" title="click here to save your modifications"><strong>S</strong>ave</button>
    </div>
    </form>
</div>

玩得开心hHTML&amp;用于表单修饰的CSS。