如何在HTML中创建表单,其中的字段会根据其他字段值进行更改

如何在HTML中创建表单,其中的字段会根据其他字段值进行更改,html,Html,我必须根据其他字段的值快速创建一个具有可选菜单的表单。我在上面找不到任何纯HTML格式的东西。仅使用HTML就可以做到这一点吗?我不认为仅使用HTML就可以做到这一点,但Javascript应该可以工作。普通HTML可能无法完成这一任务(除非HTML5中有我不知道的新的动态特性,这是完全可能的)。但是对于JavaScript(特别是在使用jQuery时),根据表单状态动态显示/隐藏/更改表单元素和页面部分非常简单 您要做的是将事件侦听器附加到驱动动态内容的表单元素,这些侦听器将相应地显示/隐藏/

我必须根据其他字段的值快速创建一个具有可选菜单的表单。我在上面找不到任何纯HTML格式的东西。仅使用HTML就可以做到这一点吗?

我不认为仅使用HTML就可以做到这一点,但Javascript应该可以工作。

普通HTML可能无法完成这一任务(除非HTML5中有我不知道的新的动态特性,这是完全可能的)。但是对于JavaScript(特别是在使用jQuery时),根据表单状态动态显示/隐藏/更改表单元素和页面部分非常简单

您要做的是将事件侦听器附加到驱动动态内容的表单元素,这些侦听器将相应地显示/隐藏/更改页面元素。你可以看一个人为的例子:

HTML:

JavaScript:

$('#selectSomething').change(function() {
    if ($('#selectSomething').val() == 'Two') {
        $('#optionalSection').show();
    } else {
        $('#optionalSection').hide();
    }
});
基本上,第二部分根据第一部分中当前选择的内容有条件地显示


注意,从服务器的角度来看,所有表单元素仍然会发布它们的值。此方法不会阻止表单中包含第二部分,只会阻止向用户显示第二部分。在服务器端处理表单结果时,仍然需要相应地重新验证业务逻辑。(永远不要假设用户提供了有效的内容。)

我能想到的唯一方法是服务器端。对于每个条件,提交后都会显示一个新表单(所有的逻辑都会在提交后完成,服务器端),但如果可以使用Javascript,那就太疯狂了。
#optionalSection
{
    display: none;
}
$('#selectSomething').change(function() {
    if ($('#selectSomething').val() == 'Two') {
        $('#optionalSection').show();
    } else {
        $('#optionalSection').hide();
    }
});