小编HMR*_*HMR的帖子

使用文本输入字段时出现的JN中的NaN

我正在尝试使用一个简单的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)

html javascript jquery input function

2
推荐指数
1
解决办法
8607
查看次数

使用 setTimeout 的变量范围

我很高兴它可以工作,但仍然对以下代码中“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 会一直保留它,直到执行匿名函数(适用于所有浏览器),但我想知道这是否是正确的方法。这种行为是有意为之还是只是一个幸运的意外?

javascript scope settimeout

1
推荐指数
1
解决办法
2027
查看次数

无法在网站上显示Symfony 2工具栏

我试图从远程计算机上执行此操作,因此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(不是缓存的).我已重命名缓存目录.

不知道还有什么要检查,以显示工具栏.

php symfony

1
推荐指数
1
解决办法
6184
查看次数

HighChart 饼图点击图例项触发向下钻取

我在尝试从图例项单击事件处理程序触发钻取事件时遇到问题。在示例中,当单击饼图切片时会触发向下钻取,但单击图例项将显示/隐藏该切片。

我正在尝试异步加载项目的数据。

向下钻取处理程序的示例:

  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)

javascript highcharts

1
推荐指数
1
解决办法
3886
查看次数

f#区别联合通用

通用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)

generics f# discriminated-union

1
推荐指数
1
解决办法
1055
查看次数

传递map函数时类型推断不起作用

首先; 感谢您抽出宝贵时间阅读我的问题.如果您需要或希望我更改某些信息,请告诉我们.

当我传入一个数组处理函数时,类型推断不起作用,但是当我将该函数添加到模块而不是注入它时,它确实有效.

尝试添加类型注释,但这只是被忽略了,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)

generics f# dependency-injection type-inference

1
推荐指数
1
解决办法
167
查看次数

trpc 错误输入解析器必须是 ZodObject

我有以下输入架构:

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,但我不知道如何解决这个问题。

zod trpc

0
推荐指数
1
解决办法
694
查看次数