使用公式输入单个字段,然后在blur上计算该公式,并使用jQuery或JS将结果返回到同一字段



我想在输入字段中输入一个公式,然后我刚才键入的公式将在同一字段中计算并返回结果,替换公式。

前任。输入2+2被替换为4 onblur或输入(8*4(+3被替换为35。

我想使用该类来绑定脚本,这样我就可以在多个字段上使用它。是否需要调用一个命令或函数来告诉jquery我想计算单个输入的内容?我找到了50个关于计算多个输入框的答案,但没有一个关于所有内容都只使用一个输入字段的答案。

更新:我已经修改了我的jQuery以使用eval,尽管这被认为是非常危险的,而且我实际上不能使用它。但看到它工作至少是乐观的。

我还删除了指向我的fiddle的链接,因为正如所指出的,jsfiddle没有加载任何jquery库,所以它永远不会在那里工作。

<html>
<input id='formula_and_total' class='self_calculate'>
</html>
$(document).ready(function() {
  $('input.self_calculate').on('blur', function() {
    //let formula = $ (input, this).val ();
    let formula = $(this).val();
    //let formula = document.getElementById ('formula_and_total').value;
    $(this).val(eval(formula));
  });
});

您可以尝试此解决方案。(如果我说得对的话(

<input id="formula_and_total" class="self_calculate">

使用格式良好的输入标记->用"以防止错误。

  $(document).ready(function () {
            $(".self_calculate").on("blur", function () {
                let formula = +$(this).val() + 1;  // add 1
                $("#formula_and_total").val(formula);
            });
  });

我的演示公式只是在输入字段中添加了1。

提供的代码有很多问题。首先,您的jsfiddle没有使用jquery,因此$将是未定义的。

接下来,选择器$("input[.self_calculate]")将找不到您试图获得的输入。相反,您会使用类似$("input.self_calculate")的东西。

接下来,text()方法不会在输入字段中获取/设置文本,而是用于设置嵌套在标记中的文本,就像<p></p>使用text('formula')变成<p>formula</p>一样。对于输入,您希望使用val()方法获取/设置输入的值。

接下来,$(this).attr("value")总是等于一个空值。使用CCD_ 9或CCD_。

接下来,我不确定您在$(this).attr("value")之前要对+做什么。据我所知,这不会有任何作用。

接下来,即使在将最后一行切换到可以设置输入值的内容之后,也可以通过在"formula"周围加引号将值设置为文字字符串。如果要将其设置为名为formula的变量的值,则需要删除引号,因此它看起来像这样:$(this).val(formula);

接下来,代码中没有任何内容可以帮助javascript计算公式。您可能需要对输入的值运行eval()之类的操作来计算数学公式,但这会使您的网站存在安全漏洞,因此不建议这样做。无论如何,这是为了学习,但请不要在面向公众的网站上发布,因为它会运行输入中键入的任何javascript代码:$(this).val(eval(formula));

相关内容

  • 没有找到相关文章

最新更新