示例 1:基础单选题(最简单)

这是一个最基础的调查问卷,只包含一道单选题,没有样式,功能完整。

调查问卷网页html代码有ABC选项
(图片来源网络,侵删)

特点:

  • 单选题(只能选一个)
  • 使用原生HTML表单元素
  • 简洁的代码结构
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">基础调查问卷</title>
</head>
<body>
    <h1>您最喜欢的编程语言是什么?</h1>
    <form action="#" method="post">
        <fieldset>
            <legend>请选择一项:</legend>
            <!-- A选项 -->
            <input type="radio" id="lang_a" name="favorite_language" value="A" required>
            <label for="lang_a">A. Python</label><br><br>
            <!-- B选项 -->
            <input type="radio" id="lang_b" name="favorite_language" value="B">
            <label for="lang_b">B. JavaScript</label><br><br>
            <!-- C选项 -->
            <input type="radio" id="lang_c" name="favorite_language" value="C">
            <label for="lang_c">C. Java</label><br><br>
            <!-- 提交按钮 -->
            <button type="submit">提交</button>
        </fieldset>
    </form>
</body>
</html>

代码解释:

  • <form>: 创建一个表单。
  • <fieldset><legend>: 将问题和选项组合在一起,并添加一个标题。
  • <input type="radio">: 创建一个单选按钮。
    • name="favorite_language": 关键属性,所有单选按钮的 name 必须相同,这样浏览器才知道它们是一组,只能选一个。
    • value="A": 选项的值,当表单提交时,会发送这个值。
    • id="lang_a": 选项的唯一标识。
    • required: 确保用户必须选择一项才能提交。
  • <label for="lang_a">: 点击标签文字也能选中对应的单选按钮,提升用户体验。for 的值与 inputid 相对应。

示例 2:带样式的多选题(更美观)

这个例子包含两道题(一道单选,一道多选),并添加了CSS样式,使其看起来更专业。

特点:

调查问卷网页html代码有ABC选项
(图片来源网络,侵删)
  • 包含单选题和多选题
  • 使用CSS进行美化
  • 代码结构清晰
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">带样式的调查问卷</title>
    <style>
        body {
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
            background-color: #f4f7f6;
            color: #333;
            margin: 0;
            padding: 20px;
        }
        .survey-container {
            max-width: 600px;
            margin: 20px auto;
            background-color: #fff;
            padding: 30px;
            border-radius: 8px;
            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
        }
        h1 {
            color: #2c3e50;
            text-align: center;
        }
        .question {
            margin-bottom: 25px;
        }
        .question h3 {
            margin-bottom: 15px;
            color: #34495e;
        }
        .options label {
            display: block; /* 让选项占据一整行 */
            margin-bottom: 10px;
            padding: 10px;
            border: 1px solid #ddd;
            border-radius: 5px;
            cursor: pointer;
            transition: background-color 0.2s;
        }
        .options label:hover {
            background-color: #f0f0f0;
        }
        .options input[type="radio"],
        .options input[type="checkbox"] {
            margin-right: 10px;
        }
        button {
            display: block;
            width: 100%;
            padding: 12px;
            background-color: #3498db;
            color: white;
            border: none;
            border-radius: 5px;
            font-size: 16px;
            cursor: pointer;
            transition: background-color 0.3s;
        }
        button:hover {
            background-color: #2980b9;
        }
    </style>
</head>
<body>
    <div class="survey-container">
        <h1>用户体验调查问卷</h1>
        <form action="#" method="post">
            <!-- 问题 1: 单选题 -->
            <div class="question">
                <h3>1. 您如何评价我们网站的整体设计?</h3>
                <div class="options">
                    <label>
                        <input type="radio" name="design_rating" value="A" required>
                        A. 非常出色
                    </label>
                    <label>
                        <input type="radio" name="design_rating" value="B">
                        B. 比较好
                    </label>
                    <label>
                        <input type="radio" name="design_rating" value="C">
                        C. 一般
                    </label>
                </div>
            </div>
            <!-- 问题 2: 多选题 -->
            <div class="question">
                <h3>2. 您通常通过哪些设备访问我们的网站?(可多选)</h3>
                <div class="options">
                    <label>
                        <input type="checkbox" name="device" value="A">
                        A. 台式电脑
                    </label>
                    <label>
                        <input type="checkbox" name="device" value="B">
                        B. 笔记本电脑
                    </label>
                    <label>
                        <input type="checkbox" name="device" value="C">
                        C. 智能手机
                    </label>
                </div>
            </div>
            <button type="submit">提交问卷</button>
        </form>
    </div>
</body>
</html>

代码解释:

  • 多选题: 使用 <input type="checkbox">,与单选不同,多选题的 name 可以相同,也可以不同(如果希望服务器能区分不同多选题组),这里为了简单,我们让它们同名。
  • CSS样式: <style> 标签内定义了样式,让问卷看起来更整洁、美观。
    • .survey-container: 设置了问卷的容器样式,如宽度、背景、阴影等。
    • .options label: 使用 display: block 让每个选项独占一行,并添加了悬停效果。
    • button: 美化了提交按钮。

示例 3:带JavaScript交互的问卷(更高级)

这个例子在第二个的基础上增加了JavaScript功能,在用户提交时进行简单的验证,并显示一个友好的提示信息。

特点:

  • 包含表单验证
  • 使用JavaScript处理提交事件
  • 提交后显示结果,而不是跳转页面
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">带交互的调查问卷</title>
    <!-- CSS样式与示例2相同 -->
    <style>
        body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; background-color: #f4f7f6; color: #333; margin: 0; padding: 20px; }
        .survey-container { max-width: 600px; margin: 20px auto; background-color: #fff; padding: 30px; border-radius: 8px; box-shadow: 0 2px 10px rgba(0,0,0,0.1); }
        h1 { color: #2c3e50; text-align: center; }
        .question { margin-bottom: 25px; }
        .question h3 { margin-bottom: 15px; color: #34495e; }
        .options label { display: block; margin-bottom: 10px; padding: 10px; border: 1px solid #ddd; border-radius: 5px; cursor: pointer; transition: background-color 0.2s; }
        .options label:hover { background-color: #f0f0f0; }
        .options input[type="radio"], .options input[type="checkbox"] { margin-right: 10px; }
        button { display: block; width: 100%; padding: 12px; background-color: #3498db; color: white; border: none; border-radius: 5px; font-size: 16px; cursor: pointer; transition: background-color 0.3s; }
        button:hover { background-color: #2980b9; }
        #result { display: none; margin-top: 20px; padding: 15px; background-color: #e8f5e9; border-left: 5px solid #4caf50; }
    </style>
</head>
<body>
    <div class="survey-container">
        <h1>产品反馈调查问卷</h1>
        <form id="surveyForm">
            <!-- 问题 1: 单选题 -->
            <div class="question">
                <h3>1. 您会向朋友推荐我们的产品吗?</h3>
                <div class="options">
                    <label><input type="radio" name="recommend" value="A" required> A. 一定会</label>
                    <label><input type="radio" name="recommend" value="B"> B. 可能会</label>
                    <label><input type="radio" name="recommend" value="C"> C. 不一定</label>
                </div>
            </div>
            <!-- 问题 2: 多选题 -->
            <div class="question">
                <h3>2. 您认为产品最需要改进的地方是?(可多选)</h3>
                <div class="options">
                    <label><input type="checkbox" name="improvement" value="A"> A. 界面设计</label>
                    <label><input type="checkbox" name="improvement" value="B"> B. 功能性能</label>
                    <label><input type="checkbox" name="improvement" value="C"> C. 客服支持</label>
                </div>
            </div>
            <button type="submit">提交反馈</button>
        </form>
        <!-- 用于显示结果 -->
        <div id="result">
            <h3>感谢您的反馈!</h3>
            <p id="resultText"></p>
        </div>
    </div>
    <script>
        // 获取表单和结果元素
        const surveyForm = document.getElementById('surveyForm');
        const resultDiv = document.getElementById('result');
        const resultText = document.getElementById('resultText');
        // 监听表单的提交事件
        surveyForm.addEventListener('submit', function(event) {
            // 阻止表单的默认提交行为(页面刷新或跳转)
            event.preventDefault();
            // 获取单选题的值
            const recommendValue = document.querySelector('input[name="recommend"]:checked');
            // 获取所有多选题的值
            const improvementValues = Array.from(document.querySelectorAll('input[name="improvement"]:checked')).map(cb => cb.value);
            // 验证单选题是否已选
            if (!recommendValue) {
                alert('请回答第一个问题!');
                return; // 如果未选,则停止执行
            }
            // 构建结果文本
            let resultMessage = `您的推荐度是: ${recommendValue.value}. `;
            if (improvementValues.length > 0) {
                resultMessage += `您认为需要改进的方面是: ${improvementValues.join(', ')}.`;
            } else {
                resultMessage += "您没有选择需要改进的方面。";
            }
            // 显示结果
            resultText.textContent = resultMessage;
            resultDiv.style.display = 'block';
            // (可选) 在实际应用中,这里可以使用 fetch 或 XMLHttpRequest 将数据发送到服务器
            // console.log('提交的数据:', {
            //     recommend: recommendValue.value,
            //     improvement: improvementValues
            // });
        });
    </script>
</body>
</html>

代码解释:

调查问卷网页html代码有ABC选项
(图片来源网络,侵删)
  • JavaScript (<script>:
    • document.getElementById('surveyForm'): 获取我们的表单元素。
    • addEventListener('submit', ...): 监听表单的 submit 事件。
    • event.preventDefault(): 关键代码,阻止表单默认的提交行为,这样页面就不会刷新或跳转。
    • document.querySelector('input[name="recommend"]:checked'): 查找被选中的单选按钮。
    • document.querySelectorAll('input[name="improvement"]:checked'): 查找所有被选中的复选框,并转换成数组以便处理。
    • resultDiv.style.display = 'block': 将隐藏的结果区域显示出来。

如何选择和使用

  • 如果你只需要一个最简单的功能,复制 示例1 的代码即可。
  • 如果你想让问卷看起来更专业、更美观,使用 示例2 的代码,它包含了完整的HTML和CSS。
  • 如果你需要在提交后立即显示结果或进行更复杂的操作,而不刷新页面,示例3 是最好的选择,它包含了完整的HTML、CSS和JavaScript。

你可以直接复制这些代码,保存为 .html 文件,然后用浏览器打开即可看到效果。