zoukankan      html  css  js  c++  java
  • 移动端——简单计分表单

    之前在笔记里面有个很简单的调查表,各选项是输入的方式,可是现在那种计分表单很常见,就是比如一个问题有四个选项,选择不同选项有不同分值。

    下面来看看从之前的简单调查表怎么演变为计分表单。(同样,主要侧重功能,所以表单依旧没有任何样式。)

    一、将手动输入的选项改为单选

    <div id="man" style="display: none;">
            <h3>你平时不高兴的时候比较喜欢通过什么方式发泄?(单选)</h3>
            <input type="radio" name="radio2" id="q11_1" value="3" onclick="show_selected11_item_val(this)"/>跑步
            <input type="radio" name="radio2" id="q11_2" value="4" onclick="show_selected11_item_val(this)"/>大吃
            <input type="radio" name="radio2" id="q11_3" value="1" onclick="show_selected11_item_val(this)"/>看电影
            <input type="radio" name="radio2" id="q11_4" value="5" onclick="show_selected11_item_val(this)"/>唱歌<br><br>
            <h3>你觉得哪个女明星最好看?(单选)</h3>
            <input type="radio" name="radio1" id="q12_2" value="4" onclick="show_selected12_item_val(this)"/>谢娜
            <input type="radio" name="radio1" id="q12_3" value="5" onclick="show_selected12_item_val(this)"/>谢娜
            <input type="radio" name="radio1" id="q12_4" value="1" onclick="show_selected12_item_val(this)"/>谢娜
            <input type="radio" name="radio1" id="q12_5" value="3" onclick="show_selected12_item_val(this)"/>谢娜<br><br>
        </div>
        <div id="miss" style="display: none;">
            <h3>以下食物你最喜欢吃什么?(单选)</h3>
            <input type="radio" name="radio1" id="q21_1" value="4" onclick="show_selected21_item_val(this)" />青菜
            <input type="radio" name="radio1" id="q21_2" value="3" onclick="show_selected21_item_val(this)"/>萝卜
            <input type="radio" name="radio1" id="q21_3" value="2" onclick="show_selected21_item_val(this)"/>花菜
            <input type="radio" name="radio1" id="q21_4" value="1" onclick="show_selected21_item_val(this)"/>小麦
            <input type="radio" name="radio1" id="q21_5" value="5" onclick="show_selected21_item_val(this)"/>西红柿<br><br>
            <h3>你觉得哪个男明星最好看?(单选)</h3>
            <input type="radio" name="radio2" id="q22_1" value="5" onclick="show_selected22_item_val(this)" />张杰
            <input type="radio" name="radio2" id="q22_2" value="5" onclick="show_selected22_item_val(this)"/>张杰
            <input type="radio" name="radio2" id="q22_3" value="5" onclick="show_selected22_item_val(this)"/>张杰
            <input type="radio" name="radio2" id="q22_5" value="5" onclick="show_selected22_item_val(this)"/>张杰<br><br>
        </div><br>

    二、为各选项添加点击事件

    function show_selected11_item_val($item){
           r11 = $item.value;
       }
    function show_selected12_item_val($item){
           r12 = $item.value;
       }
    function show_selected21_item_val($item){
           r21 = $item.value;
       }
    function show_selected22_item_val($item){
           r22 = $item.value;
       }

    三、修改getResult()函数

    if(sex1 == true){
         result = parseInt(r11) + parseInt(r12);
    }
    if(sex2 == true){
         result = parseInt(r21) + parseInt(r22);
    }
    return result;

    当然,变量在之前就定义了,     var r11 , r12 , r21 , r22 , result=0;

    四、别的函数中不用取值的参数去掉即可,比如 age

    效果图:

          

    要点:关键在于,取得所选项的value(分值)。

    <form method="post" action="#">
        <input type="text" name="s1" placeholder="名字">
        <h3>以下食物你最喜欢吃什么?(单选)</h3>
        <input type="radio" name="radio1" id="q1_1" value="4" onclick="show_selected1_item_val(this)" />青菜
        <input type="radio" name="radio1" id="q1_2" value="3" onclick="show_selected1_item_val(this)"/>萝卜
        <input type="radio" name="radio1" id="q1_3" value="2" onclick="show_selected1_item_val(this)"/>花菜
        <input type="radio" name="radio1" id="q1_4" value="1" onclick="show_selected1_item_val(this)"/>小麦
        <input type="radio" name="radio1" id="q1_5" value="5" onclick="show_selected1_item_val(this)"/>西红柿<br><br>
        <h3>你平时不高兴的时候比较喜欢通过什么方式发泄?(单选)</h3>
        <input type="radio" name="radio2" id="q2_1" value="3" onclick="show_selected2_item_val(this)"/>跑步
        <input type="radio" name="radio2" id="q2_2" value="5" onclick="show_selected2_item_val(this)"/>大吃
        <input type="radio" name="radio2" id="q2_3" value="1" onclick="show_selected2_item_val(this)"/>看电影
        <input type="radio" name="radio2" id="q2_4" value="5" onclick="show_selected2_item_val(this)"/>唱歌<br><br>
        你选择的是:<span id="show_content1"></span>
                  <span id="show_content2"></span><br><br>
        <input type="submit" value="提交" onclick="result()"><input type="reset" value="重置"><br><br>
    </form>

     上面是一个表单,每个问题的选项都有点击事件:

     function show_selected1_item_val($item){
          document.getElementById("show_content1").innerHTML= $item.value;
     }
     function show_selected2_item_val($item){
          document.getElementById("show_content2").innerHTML= $item.value;
     }

     id为 show_content1 和 show_content2 是用来显示所选项的分值。主要就是 Result() 函数了:

    function result(){
                var r1 = document.getElementById("show_content1").innerHTML;
                var r2 = document.getElementById("show_content2").innerHTML;
                var r = parseInt(r1) + parseInt(r2);
                alert(r);
    
            }

    这里用的是 document.getElementById("元素id").innerHTML :用javascript 的 document 对象查找到该div 获取它的HTML(假如该元素中包含子元素可用childNodes[Index]属性获取)

    之后查资料看到有说 document.forms[] 也行,document.forms[] 返回一个集合,包含页面中所有表单form,document.forms[0]指页面中的第一个表单。

     document.forms[0].s1.value 可以获取 页面中第一个表单中 name = s1 的值,所以:

    function result(){
          var r1 = document.forms[0].s1.value;
          var r2 = document.forms[0].radio1.value;
          var r = parseInt(r1) + parseInt(r2);
          alert(r);
    }
  • 相关阅读:
    linux定时器的使用
    6410 spi总线
    6410 spi 设备驱动
    qtcreator 安装后不能显示菜单
    基于Tiny 6410的内核移植 (NAND FLASH 、UBIFS篇)
    有关ajax跨域问题
    sqlmap的安装
    C# 连接数据库的配置方法
    初识Markdown
    ASP.NET 使用Ueditor富文本编辑器
  • 原文地址:https://www.cnblogs.com/lyr1213/p/5862426.html
Copyright © 2011-2022 走看看