我想在输入字段中输入一个公式,然后我刚才键入的公式将在同一字段中计算并返回结果,替换公式。
前任。输入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));