以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  不能执行JS是什么原因  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=103161)

--  作者:明天的灵
--  发布时间:2017/7/1 17:19:00
--  不能执行JS是什么原因
本人在学习移动开发这一章,
在学习到使用JavaScript文件时(http://www.foxtable.com/mobilehelp/scr/0016.htm)
拷贝帮助的代码,测试时,只显示出表单,但不能自动计算出金额。

备注,在"d:\\web"目录下,建立一个子目录lib,在这个子目录中新建一个文本文件,文件名为"calc.js",文件内容为:

function calc(){
    je.value = dj.value * sl.value * (1 - zk.value);
}

[此贴子已经被作者于2017/7/1 17:19:21编辑过]

--  作者:有点蓝
--  发布时间:2017/7/1 17:22:00
--  
代码有调用这个js的地方吗?

sb.appendline("<script src=\'./lib/calc.js\'></script>")

--  作者:明天的灵
--  发布时间:2017/7/1 17:28:00
--  
有的,代码是从帮助中拷贝过去的
[此贴子已经被作者于2017/7/1 17:29:03编辑过]

--  作者:有点蓝
--  发布时间:2017/7/1 17:29:00
--  
贴出完整代码看看
--  作者:明天的灵
--  发布时间:2017/7/1 17:30:00
--  
Dim fl As String = "d:\\web\\" & e.path
If filesys.FileExists(fl)
    Dim idx As Integer = fl.LastIndexOf(".")
    Dim ext As String  = fl.SubString(idx)
    Select Case ext
        Case ".jpg",".gif",".png",".bmp",".wmf",".js" \'这里加上了js扩展名
            e.WriteFile(fl)
    End Select
Else
    Dim sb As New StringBuilder
    sb.appendLine("<!doctype html>")
    sb.appendLine("<html>")
    sb.appendLine("<head>")
    sb.appendLine("<meta charset=\'utf-8\'>")
    sb.appendLine("<title>表单</title>")
    sb.appendLine("</head>")
    sb.appendLine("<body>")
    sb.appendLine("<form enctype=\'multipart/form-data\' method=\'post\' id=\'form1\' name=\'form1\'>")
    sb.appendLine("产品: <input name=\'cp\' id=\'cp\'><br/><br/>")
    sb.appendLine("客户: <input name=\'kh\' id=\'kh\'><br/><br/>")
    sb.appendLine("雇员: <input name=\'gy\' id=\'gy\'><br/><br/>")
    sb.appendLine("单价: <input Type=\'number\' name=\'dj\' id=\'dj\' ><br/><br/>") \'加上事件触发
    sb.appendLine("折扣: <input Type=\'number\' name=\'zk\' id=\'zk\' step=\'0.01\' ><br/><br/>")
    sb.appendLine("数量: <input Type=\'number\' name=\'sl\' id=\'sl\' ><br/><br/>")
    sb.appendLine("金额: <input Type=\'number\' name=\'je\' id=\'je\' readonly><br/><br/>")
    sb.appendLine("日期: <input Type=\'date\' name=\'rq\' id=\'rq\'><br/><br/>")
    sb.appendLine("<input Type=\'submit\' name=\'Sumbit\' id=\'Sumbit\' value=\'确定\'>")
    sb.appendLine("</form>")
    sb.appendline("<script src=\'./lib/calc.js\'></script>") \'引入脚本文件
    sb.appendLine("</body>")
    sb.appendLine("</html>")
    e.WriteString(sb.ToString)
End If


--  作者:有点蓝
--  发布时间:2017/7/1 17:34:00
--  
11
[此贴子已经被作者于2017/7/1 17:40:15编辑过]

--  作者:有点蓝
--  发布时间:2017/7/1 17:41:00
--  
js改成这样

function calc(){
    var dj = document.getElementById(\'dj\').value;
    var sl = document.getElementById(\'sl\').value;
    var zk = document.getElementById(\'zk\').value;
var je = document.getElementById(\'je\');
    if (dj && sl && zk){
        je.value= dj * sl * (1-zk);
   }
}

--  作者:明天的灵
--  发布时间:2017/7/1 17:47:00
--  
有计算结果了,但金额不对


图片点击可在新窗口打开查看此主题相关图片如下:js.png
图片点击可在新窗口打开查看


[此贴子已经被作者于2017/7/1 17:48:11编辑过]

--  作者:有点蓝
--  发布时间:2017/7/1 17:49:00
--  
代码没有问题,看懂折扣的用法
--  作者:明天的灵
--  发布时间:2017/7/1 17:55:00
--  
好的,谢谢