• 简单实现根据选项显示不同的表单


          不知道大家是否遇到过这样的一种需求。(我遇到了,呵呵)表单里面有个单选,根据不同的选项显示不同的表单,然后提交不同数据。我之前用了一些笨方法去实现,(代码烂,不想贴),不过,现在想到了一个新的解决方法,我就写出来。

     1 <!DOCTYPE html>
     2 <html>
     3 
     4     <head>
     5         <meta charset="utf-8" />
     6         <title>动态表单提交</title>
     7     </head>
     8 
     9     <body>
    10         <form id="questionForm">
    11             名字:
    12             <input type="text" value="" name="username"></input>
    13             <br/> 性别: 男
    14             <input type="radio" value="0" name="sex" checked></input>
    15<input type="radio" value="1" name="sex"></input>
    16             <div class="boy" style="display: none;">
    17                 喜欢什么样的女生:<br/>
    18                 <textarea id="textarea"></textarea>
    19             </div>
    20             <div class="girl" style="display: none;">
    21                 男生的哪一点更吸引你?<br/> A.外表相貌
    22                 <input type="radio" value="A" name="advantage" checked></input>
    23                 B.家庭状况<input type="radio" value="B" name="advantage"></input>
    24             </div>
    25             <button type="submit">提交</button>
    26         </form>
    27         <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
    28         <script>
    29             $(function() {
    30                 
    31                 var sexRadio = $("input:radio[name='sex']");
    32                 var sex = $("input:radio[name='sex']:checked").val();
    33                 var formJson = {};
    34                 //初始化拓展表单
    35                 showExpandDiv(sex);
    36                 //监听性别单选变化
    37                 sexRadio.change(function() {
    38                     for(i = 0; i < sexRadio.length; i++) {
    39                         if(sexRadio[i].checked) {
    40                             sex = sexRadio[i].value;
    41                             showExpandDiv(sex);
    42                         }
    43                     }
    44                 });
    45                 //显示对应拓展表单
    46                 //@param sex 
    47                 function showExpandDiv(sex) {
    48                     //判断性别值,0为男,1为女
    49                     if(sex == 0) {
    50                         var boy = $("#textarea").val();
    51                         //显示boy表单
    52                         $(".boy").show();
    53                         $(".girl").hide();
    54                         //移除girl数据
    55                         delete formJson.girl;
    56                         //添加boy数据
    57                         formJson.boy = boy;
    58                     } else {
    59                         var girl = $("input:radio[name='advantage']:checked").val();
    60                         //显示girl表单
    61                         $(".girl").show();
    62                         $(".boy").hide();
    63                         //移除boy数据
    64                         delete formJson.boy;
    65                         //添加girl数据
    66                         formJson.girl = girl;
    67                     }
    68                 }
    69 
    70                 //提交表单
    71                 $("#questionForm").submit(function() {
    72                     var name = $("input[name='username']").val();
    73                     formJson.name = name;
    74                     formJson.sex = sex;
    75                     showExpandDiv(sex);
    76                     alert(JSON.stringify(formJson))
    77                 });
    78 
    79             });
    80         </script>
    81     </body>
    82 
    83 </html>

           PS:这是一种可行的方案,如有更好的方法请告诉我。

  • 相关阅读:
    Jupyter-notebook安装问题及解决
    [模块] scrapy_splash(迁移)
    pychram-redis破解
    scrapy-redis(迁移)
    123
    day44作业
    sql 的基本数据类型
    基本数据库操作
    安装数据库与配置使用环境
    线程知识点——Event事件
  • 原文地址:https://www.cnblogs.com/Sroot/p/6714651.html
Copyright © 2020-2023  润新知