ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: OKJSJSF

[求助] HTML文档的计算问题

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-7-3 16:33 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
zpy2 发表于 2024-6-30 16:30
function g1(id){
                                return document.getElementById(id);
            ...

问下老师,直接用ID可以计算,但加号+变成连字符不能加了。
<html>
<head>
        <meta charset="utf-8">
        <h1>村乡“大搬快聚”补贴计算器</h1>
</head>
        <style type="text/css">
                .style1 {font-size: x-large;line-height: 150%;}     
                .style2 {background-color: #FFFF00;}
                input[type="text"]{width:180px;font-size: x-large;text-align: center;border-width: 1px;border-radius:5px;}
                input[type="radio"]{width:20px;height: 20px}
                input[type="button"]{font-size: x-large;line-height: 150%;font-weight: bold;border-radius:10px;}
                table {width: 30%;font-size: x-large;text-align: center;border-collapse: collapse;}
                table td{border:solid 1px;padding:1px;}                    
        </style>

<body>               
        <p class="style1">单位:元、平方米
        <br>请在下面空框中录入数据及选择项目后点击“计算”:       
        <br><span style="background-color: #FFFF00;">1、</span>农户人口数?
        <input type="text" id="input1" onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')" title="农户人口数:0或自然数">

        <br><class="style1">2、人均补贴标准:
        <input type="text" id="input2" value=50000>

        <br><class="style1">3、按农户人口补贴金额:
        <input type="text" id="input3" value==?>

        <br><class="style1">4、按农户人口可审批安置面积标准:
        <br><table>       
                <tr><td>人口数</td><td>可安置面积</td></tr>
                <tr><td>1</td><td><input type="text" id="input4" value=60></td></tr>
                <tr><td>2</td><td><input type="text" id="input5" value=100></td></tr>
                <tr><td>3及以上</td><td><input type="text" id="input6" value=140></td></tr>       
        </table>

        <class="style1"><span class="style1" style="background-color: #FFFF00" >5、</span>旧房建筑面积?
        <input type="text" id="input7" onkeyup="if(isNaN(value))execCommand('undo')" onafterpaste="if(isNaN(value))execCommand('undo')" title="旧屋建筑面积:0或自然数">

        <br><class="style1"><span class="style1" style="background-color: #FFFF00" >6、</span>是否愿意搬迁至城南?
        <input type="radio" name="group1" id=o1 value=1>是
        &nbsp;&nbsp;&nbsp;<input type="radio" name="group1" id=o2 value=2>否

        <br><class="style1"><span class="style1" style="background-color: #FFFF00" >7、</span>旧房结构类型?
        <input type="radio" name="group2" id=o3 value=1>泥木
        &nbsp;&nbsp;&nbsp;<input type="radio" name="group2" id=o4 value=2>砖混

        <br><class="style1">8、旧房拆除补贴标准:
        <br><table>       
                <tr><td>房屋结构</td><td>补贴单价</td></tr>
                <tr><td>泥木</td><td><input type="text" id="input8" value=200></td></tr>
                <tr><td>砖混</td><td>        <input type="text" id="input9" value=300></td></tr>
        </table>

        <class="style1">9、旧房拆除可补贴金额:
        <input type="text" id="input10" value==?>

        <br><class="style1">10、有房户购商品房按面积补贴标准:
        <input type="text" id="input11" value=3500>

        <br><class="style1">11、无房户购商品房按面积补贴标准:
        <input type="text" id="input12" value=2900>

        <br><class="style1">12、按商品房实际建筑面积再补贴标准:
        <input type="text" id="input13" value=2000>

        <br><class="style1"><span class="style1" style="background-color: #FFFF00" >13、</span>计划新房建筑面积?
        <input type="text" id="input14" onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')" title="新房建筑面积:0或自然数">

        <br><class="style1"><span class="style1" style="background-color: #FFFF00" >14、</span>新房户型选择?
        <input type="radio" name="group3" id=o5 value=1>商品房
        &nbsp;&nbsp;&nbsp;<input type="radio" name="group3" id=o6 value=2>安置房
        &nbsp;&nbsp;&nbsp;<input type="radio" name="group3" id=o7 value=3>大搬快聚房

        <br>15、<strong>补贴合计:</strong>
        <input type="text" id="input15" value==? style="font-weight: bold;">

        <br><class="style1"><span class="style1" style="background-color: #FFFF00" >16、</span>意向商品房单价?
        <input type="text" id="input16" onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')">

        <br><class="style1">17、意向安置房单价:
        <input type="text" id="input17" value=5600>

        <br><class="style1">18、意向大搬快聚房单价:
        <input type="text" id="input18" value=5500>

        <br><class="style1">19、意向新房总价:
        <input type="text" id="input19" value==?>

        <br><class="style1">20、资金缺口(房价-补贴=):
        <input type="text" id="input20" value==?>

        <p><input type="button" value=计算= onclick="getsum()">
        &nbsp;&nbsp;&nbsp;<input type="button" value="重置" onclick="reset()">
        &nbsp;&nbsp;&nbsp;<input type="button" value="按揭计算器" onclick="zjrcu()">

        <br><p class="style1">友情链接:<a href="http://www.jiangshan.gov.cn/col/col1229335337/index.html",target="_blank" >江山市人民政府网</a>&nbsp;&nbsp;<a href="https://www.zj96596.com/zj96596/gywm/index.shtml",target="_blank" >江山农村商业银行网</a>
        <br>编辑:OKJSJSF,电话618887、13645708887,微信号18057025250,审核:
        <br>日期:2024年6月29日。
</body>

        <script type="text/javascript">
                function g1(id){
                                return document.getElementById(id);
                        }                       
                function getsum(){       
                        if(input1.value==""){input1.focus();alert("农户人口数不能空!可以 0");return;}
                        var inp1=input1.value;
                        if(input2.value==""){input2.focus();alert("标准不能删空!");return;}
                        var inp2=input2.value;
                        input3.value=(inp1*inp2);                               
                        var inp3=input3.value;
                        if(input4.value==""){input4.focus();alert("标准不能删空!");return;}
                        var inp4=input4.value;
                        if(input5.value==""){input5.focus();alert("标准不能删空!");return;}
                        var inp5=input5.value;
                        if(input6.value==""){input6.focus();alert("标准不能删空!");return;}
                        var inp6=input6.value;
                        var s1;
                        if(inp1==0){s1=0;}
                                else if(inp1==1){s1=inp4;}
                                        else if(inp1==2){s1=inp5;}
                                                else{s1=inp6;}
                        if(input7.value==""){input7.focus();alert("旧房建筑面积不能空!可以 0");return;}
                        var inp7=input7.value;
                        var s2=Math.max(s1,inp7);
                        if(input8.value==""){input8.focus();alert("标准不能删空!");return;}
                        var inp8=input8.value;
                        if(input9.value==""){input9.focus();alert("标准不能删空!");return;}
                        var inp9=input9.value;
                        if(inp7>0){
                                if(o1.checked){
                                        if(o3.checked){input10.value=(inp7*inp8);}
                                        else if(o4.checked){input10.value=(inp7*inp9);}
                                        else{o3.focus();alert("有旧房且愿意搬迁城南时旧房结构二选一!");return;}
                                        }
                                else if(o2.checked){input10.value=0;}
                                else{o1.focus();alert("有旧房时是否愿意搬迁城南二选一!");return;}
                                }
                        else{input10.value=0;o1.checked=false;o2.checked=false;o3.checked=false;o4.checked=false;
                                }                                               
                        var inp10=input10.value;
                        if(input11.value==""){input11.focus();alert("标准不能删空!");return;}                       
                        var inp11=input11.value;
                        if(input12.value==""){input12.focus();alert("标准不能删空!");return;}
                        var inp12=input12.value;
                        if(input13.value==""){input13.focus();alert("标准不能删空!");return;}
                        var inp13=input13.value;
                        if(input14.value==""){input14.focus();alert("计划新房建筑面积不能空!");return;}
                        var inp14=input14.value;
                        if(o6.checked||o7.checked){input15.value=(inp3+inp10);}
                                else if(o5.checked&&inp7>0){input15.value=(inp3+inp10+s2*inp11+inp14*inp13);}
                                else if(o5.checked&&inp7==0){input15.value=(inp3+inp10+s2*inp12+inp14*inp13);}
                                else{o5.focus();alert("计划搬迁新房户型三选一!");return;}
                        var inp15=input15.value;
                        var inp16=input16.value;
                        if(input17.value==""){input17.focus();alert("标准不能删空!");return;}
                        var inp17=input17.value;
                        if(input18.value==""){input18.focus();alert("标准不能删空!");return;}
                        var inp18=input18.value;

                        if(o5.checked){input19.value=(inp14*inp16);}
                                else if(o6.checked){input19.value=(inp14*inp17);}
                                else if(o7.checked){input19.value=(inp14*inp18);}
                        var inp19=input19.value;
                        input20.value=(inp19-inp15);
                        var inp20=input20.value;
                        if(isNaN(inp20)){alert("商品房单价无数据,新房总价与资金缺口无法计算!");}
                        }

                function reset(){
                        input1.value="";
                        input2.value=30;
                        input3.value="=?";
                        input4.value=60;
                        input5.value=100;
                        input6.value=140;
                        input7.value="";
                        input8.value=200;
                        input9.value=300;
                        input10.value="=?";
                        input11.value=3500;
                        input12.value=2900;
                        input13.value=2000;
                        input14.value="";
                        input15.value="=?";
                        input16.value="";
                        input17.value=5600;
                        input18.value=5500;
                        input19.value="=?";
                        input20.value="=?";
                        o1.checked=false;
                        o2.checked=false;
                        o3.checked=false;
                        o4.checked=false;
                        o5.checked=false;
                        o6.checked=false;
                        o7.checked=false;
                        }
                <!--上面的重置方法应该改进为数组加二个循环语句-->
                function zjrcu(){
                        alert("让我们做得更好!");
                        }
        </script>
</html>

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-7-3 20:19 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
OKJSJSF 发表于 2024-7-3 16:33
问下老师,直接用ID可以计算,但加号+变成连字符不能加了。

用Office的办法“文本乘以1转换为数值”,问题解决,正常计算了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-7-3 23:05 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
重置输入框数据的代码改为如下:               
function reset(){
                        arr=["",50000,"=?",60,100,140,"",false,false,false,false,200,300,"=?",3500,2900,2000,"",false,false,false,"=?","",5600,5500,"=?","=?"]
                        var ra =document.getElementsByTagName("input");
                        for(var i=0;i<ra.length && ra[i];i++){
                                if(ra[i].type!="button"){
                                        if(ra[i].type=="text"){ra[i].value=arr[i];}
                                        else if(ra[i].type=="radio"){ra[i].checked=arr[i];}
                                        }
                                }               
                        }

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-7-21 18:14 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
继续改进中。

大搬快聚计算器.rar

3.34 KB, 下载次数: 2

TA的精华主题

TA的得分主题

发表于 2024-7-22 14:33 来自手机 | 显示全部楼层
OKJSJSF 发表于 2024-7-3 23:05
重置输入框数据的代码改为如下:               
function reset(){
                        arr=["",50000,"=?",60,100,140,"",false,fals ...

<form>
<input

....
&nbsp;&nbsp;&nbsp;<button type="reset">"重置"</button>


</form>

直接type=reset,不需要js重新赋值。



summary里一般不用a 标签,点击文字才能展开

TA的精华主题

TA的得分主题

发表于 2024-7-22 14:36 来自手机 | 显示全部楼层
zpy2 发表于 2024-7-22 14:33

input1
最好用 inputRuralPopulation
英文驼峰命名方式,方便后期维护。

如果经常维护,可以使用git版本控制

TA的精华主题

TA的得分主题

发表于 2024-7-22 14:42 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
zpy2 发表于 2024-7-22 14:36
input1
最好用 inputRuralPopulation
英文驼峰命名方式,方便后期维护。

<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0" />

适配手机

字体大小可以使用rem

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-7-23 08:16 | 显示全部楼层
zpy2 发表于 2024-7-22 14:42
适配手机

字体大小可以使用rem

早上刚看到老师的贴子,学生会逐一改进。原来重置功能是这么简单,部份改为表单元素!
今天我先改一部份,输入框中的自动计算功能的使用,不需点击计算按钮,一个框中录入数据,另一个框自动产生运算后的数据并锁定,比如其中的按揭金额的首付比例与可按揭比例之间,和总是100%。同时这种向公众免费官宣的计算器,我应当在前面声明:计算结果仅供参考,请以当地实际为准!

大搬快聚计算器.rar

3.41 KB, 下载次数: 2

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-7-23 08:23 | 显示全部楼层
网页还真是好玩,计算功能放在网页中,不需要下载Office之类,通过微信传输后,用QQ浏览器即可打开使用,太方便!现在年纪不太老的大家都有智能机都有微信。

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-7-23 08:32 | 显示全部楼层

学生这里把一与二当作折叠与展开的标题用,但又不能用标题标签元素H2等,用了后,折叠与展开按钮会跑到另一行,占用空间。现在我还不会把跳转到一与跳转到二放在“标题”一与二的末尾,这又占用了空间。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-9-8 08:51 , Processed in 0.040815 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表