我正在尝试使用一个简单的javascript函数,该函数旨在与单个数字的SELECT下拉列表一起使用,但现在我需要在访问者输入带小数点的值时使用它.即使我输入30或任何数字,我使用当前的javascript获得NaN.关于如何获得我的总数的任何建议?
JAVASCRIPT:
$(function () {
$('.DoPricing').change(function () {
var total = 0;
$('.DoPricing').each(function () {
total += parseInt($(this).val());
});
$('#TotalPrice').html('$' + total);
});
});
Run Code Online (Sandbox Code Playgroud)
HTML:
<form action="myactionpage.php" method="POST">
<table>
<tr>
<td>How much will you be paying today?</td>
<td>$<input type="text" name="howmuch" id="howmuch" placeholder="0.00" class="DoPricing"></td>
</tr>
<tr>
<td><div class="totalbox">Total Amount Due Today: <strong><span id="TotalPrice">$0.00</span></strong></div>
</td>
</tr>
<tr><td><input type="submit" id="submit" name="submit" value="Submit Payment" class="submitbut" /></td>
</tr>
</table>
</form>
Run Code Online (Sandbox Code Playgroud) 我很高兴它可以工作,但仍然对以下代码中“me”变量的范围有些困惑。现在使用它一段时间,但无法弄清楚它为什么起作用。
var timer=function(){
this.timerMember=1;
this.timerID=0;
this.startTimer=function(){
var me=this;
this.timerID=setTimeout(function(){
//shares scope with this.startTimer
//timerMember is 2 here
console.log(me.timerMember);
// this is window
console.log(this);
// me doesn't exist in window
console.log(this.me);
},0);
// this code gets executed before anonymous
// timer function
// clearTimeout(this.timerID);
this.timerMember++;
}
}
var t=new timer();
t.startTimer();
Run Code Online (Sandbox Code Playgroud)
传递给 setTimeout 的匿名函数似乎与 timer.startTimer 共享范围,但当匿名函数执行时 startTimer 显然已完成(me.timerMemer=2),因此当 startTimer 完成时,me 变量应该超出范围。幸运的是,JavaScript 会一直保留它,直到执行匿名函数(适用于所有浏览器),但我想知道这是否是正确的方法。这种行为是有意为之还是只是一个幸运的意外?
我试图从远程计算机上执行此操作,因此app_dev.php是:
<?php
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Debug\Debug;
$loader = require_once __DIR__.'/../app/bootstrap.php.cache';
Debug::enable();
require_once __DIR__.'/../app/AppKernel.php';
$kernel = new AppKernel('dev', true);
$kernel->loadClassCache();
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);
Run Code Online (Sandbox Code Playgroud)
模板渲染后我得到这个:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Title</title>
</head>
<body>
<h1>Give us a toolbar now will you?</h1>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
看起来像有效的HTML并且有一个body元素,但没有工具栏.
我只有ftp访问权限,因此重命名为Symfony/app/cache文件夹.
我已经确认app_dev.php已执行Debug::enable();并且$kernel = new AppKernel('dev', true);(添加错误会导致错误.
我已经确认生成有效的html呈现index.html.twig(不是缓存的).我已重命名缓存目录.
不知道还有什么要检查,以显示工具栏.
我在尝试从图例项单击事件处理程序触发钻取事件时遇到问题。在示例中,当单击饼图切片时会触发向下钻取,但单击图例项将显示/隐藏该切片。
我正在尝试异步加载项目的数据。
向下钻取处理程序的示例:
drilldown: function(e) {
console.log(".....", "on drilldown item", e, this);
var chart = this
, serieData = [];
if (!e.seriesOptions) {
chart.showLoading('Loading ...');
setTimeout(function() {
chart.addSeriesAsDrilldown(e.point, {
name: 'Some sub item',
colorByPoint: true,
data: [{
name: 'bla',
y: 56.33
}, {
name: 'da da',
y: 24.03,
drilldown: true
}, {
name: 'ba ba ba',
y: 10.38,
drilldown: true
}]
});
chart.hideLoading();
}
, 10);
}
}
}
Run Code Online (Sandbox Code Playgroud)
和图例项目处理程序:
point: {
events: {
legendItemClick: function(e) {
console.log(".....", "clicked …Run Code Online (Sandbox Code Playgroud) 通用TryValue类型的语法是什么,它可以返回值'a或'b'的错误?
type TryValue =
| Value of 'a
| Error of 'b
Run Code Online (Sandbox Code Playgroud)
如果错误是一个字符串,那么它没关系:
type 'a TryValue =
| Value of 'a
| Error of string
Run Code Online (Sandbox Code Playgroud)
我想定义一个tryRun函数,它接受一个错误创建器,一个函数和一个参数,它将尝试使用参数运行该函数,并且在任何错误上使用错误创建器函数来创建错误:
let tryRun createErrorFn param fn =
try
Value (fn param)
with
| ex -> Error (createErrorFn ex.Message param)
Run Code Online (Sandbox Code Playgroud)
以及tryRun包装的任何函数的包装器:
let wrapTryRun createErrorFn fn param =
match param with
| Value a -> tryRun createErrorFn a fn
| Error e -> Error e
Run Code Online (Sandbox Code Playgroud)
现在我可以运行一个函数列表(伪代码,还没有完全解决这个问题):
let createErrorFn errorMessage param =
URLProcessignError {url=param.url;errorMessage=errorMessage}
[fn1;fn2] |> List.fold (fun …Run Code Online (Sandbox Code Playgroud) 首先; 感谢您抽出宝贵时间阅读我的问题.如果您需要或希望我更改某些信息,请告诉我们.
当我传入一个数组处理函数时,类型推断不起作用,但是当我将该函数添加到模块而不是注入它时,它确实有效.
尝试添加类型注释,但这只是被忽略了,F#警告第一次调用它时代码不太通用,然后第二次错误类型错误输出.
但如果我改变:
let handleAction
//following does not work, comment out next line
(mapItems : 'a -> 'b [] -> int -> ('b -> 'a -> 'b) -> 'b [])
Run Code Online (Sandbox Code Playgroud)
至
let handleAction
//following does not work, comment out next line
(notPassed : 'a -> 'b [] -> int -> ('b -> 'a -> 'b) -> 'b [])
Run Code Online (Sandbox Code Playgroud)
然后它工作得很好.试图删除向上依赖项但无法让F#理解类型.
let mapItems
action
state
index
handlerfn =
state
|> Array.indexed
|> Array.map (
fun (i, item) ->
if index …Run Code Online (Sandbox Code Playgroud) 我有以下输入架构:
const inputSchema = z.union([
z.object({
id: z.string(),
}),
z.object({
key: z.string(),
}),
])
Run Code Online (Sandbox Code Playgroud)
这个模式一直有效,直到我这样做:
import { generateOpenApiDocument } from 'trpc-openapi'
const openApiDocument = generateOpenApiDocument(trpcAppRouter, {
title: 'title',
baseUrl: '/route',
version: '0.0.1',
})
Run Code Online (Sandbox Code Playgroud)
当我生成传递带有generateOpenApiDocument输入的路由时,我收到错误:
TRPCError:[query.thing.route] - 输入解析器必须是 ZodObject
我猜这是generateOpenApiDocument 中的一个错误,它没有正确检查输入,因为它是一个ZodObject,但我不知道如何解决这个问题。
javascript ×3
f# ×2
generics ×2
function ×1
highcharts ×1
html ×1
input ×1
jquery ×1
php ×1
scope ×1
settimeout ×1
symfony ×1
trpc ×1
zod ×1