Javascript/jQuery - 如果输入的值为
Javascript/jQuery - if the value of the input is
我想制作一个可以工作的计算器。
现在,我想在运算符之间切换。
假设我有 + 和 -。然后,我有2个号码。接线员在他们中间。
如果运算符的值为+,则应该计算+。
如果运算符的值为-,则应计算-.
我尝试过类似的方法,但它不起作用,帮助?
function Operator() {
if ($('#realOperator').val == ('+');){
var a = parseInt($('input[name=a]').val());
var b = parseInt($('input[name=b]').val());
$('#total').val(a+b);
}else
$('#total').val(a-b);
}
}
Information
#realOperator is the input with the operator
#total is the input with the result.
谢谢,如果语法有误,我也很抱歉。我是新手!
你可以试试这个代码
function Operator() {
var a = parseInt($('input[name=a]').val());
var b = parseInt($('input[name=b]').val());
if ($('#realOperator').val() == ('+')) {
var sum = a + b;
$('#total').val(sum);
} else {
if (a > b) {
var minus = a - b;
} else {
var minus = b - a;
}
$('#total').val(minus);
}
}
如果您发送代码或输入 realOperator 值,我会再次检查
这是@Loris Vonlanthen 的解决方案
function Operator() {
var a = parseInt($('input[name=a]').val());
var b = parseInt($('input[name=b]').val());
if ($('#realOperator').val() == '+') {
$('#total').val(a + b);
} else
$('#total').val(a - b);
}
您应该删除条件中的分号,此外,您需要在 if 语句之外设置 a 和 b,因为您的“-”代码不知道 a 和 b 是什么。
您还有一些语法错误,我已在下面为您更正。
function Operator() {
var a = parseInt($('input[name=a]').val(), 10);
var b = parseInt($('input[name=b]').val(), 10);
if ($('#realOperator').val() == ('+')){
$('#total').val(a+b);
} else {
$('#total').val(a-b);
}
}
if语句之间有分号(;)。
此外,您不需要像 ('+') 这样的运算符用括号括起来。你可以只写'+'。
您还错过了 else 的“{”,但您已经关闭了。
您应该试试这个代码:
function Operator() {
if ($('#realOperator').val == '+'){
var a = parseInt($('input[name=a]').val());
var b = parseInt($('input[name=b]').val());
$('#total').val(a+b);
}else{
$('#total').val(a-b);
}
}
您的代码中存在一些语法错误,例如此处:if ($('#realOperator').val == ('+');){
。分号是不必要的。
方法.val()
将得到输入值字符串。您必须将其转换为 number.
最好将逻辑与标记分开。因此,将您的 Operator
函数定义为一个纯函数,它接受两个数字和一个运算符,并计算结果。
function operator(a, b, operation) {
if (operation === '+') {
return a + b;
}
else if (operation === '-') {
return a - b;
}
// you can implement more operations like * / %
throw new Error('Unhandled Operation');
}
$(function () {
$('[data-role="operator"]').on('click', function () {
var operation = $(this).text();
var a = $('#a').val() * 1; // make it number
var b = $('#b').val() * 1; // make it number
$('#total').val( operator(a, b, operation) );
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="a" type="text" />
<input id="b" type="text" />
<button data-role="operator">+</button>
<button data-role="operator">-</button>
<hr />
<input id="total" />
我想制作一个可以工作的计算器。 现在,我想在运算符之间切换。
假设我有 + 和 -。然后,我有2个号码。接线员在他们中间。
如果运算符的值为+,则应该计算+。 如果运算符的值为-,则应计算-.
我尝试过类似的方法,但它不起作用,帮助?
function Operator() {
if ($('#realOperator').val == ('+');){
var a = parseInt($('input[name=a]').val());
var b = parseInt($('input[name=b]').val());
$('#total').val(a+b);
}else
$('#total').val(a-b);
}
}
Information
#realOperator is the input with the operator
#total is the input with the result.
谢谢,如果语法有误,我也很抱歉。我是新手!
你可以试试这个代码
function Operator() {
var a = parseInt($('input[name=a]').val());
var b = parseInt($('input[name=b]').val());
if ($('#realOperator').val() == ('+')) {
var sum = a + b;
$('#total').val(sum);
} else {
if (a > b) {
var minus = a - b;
} else {
var minus = b - a;
}
$('#total').val(minus);
}
}
如果您发送代码或输入 realOperator 值,我会再次检查
这是@Loris Vonlanthen 的解决方案
function Operator() {
var a = parseInt($('input[name=a]').val());
var b = parseInt($('input[name=b]').val());
if ($('#realOperator').val() == '+') {
$('#total').val(a + b);
} else
$('#total').val(a - b);
}
您应该删除条件中的分号,此外,您需要在 if 语句之外设置 a 和 b,因为您的“-”代码不知道 a 和 b 是什么。
您还有一些语法错误,我已在下面为您更正。
function Operator() {
var a = parseInt($('input[name=a]').val(), 10);
var b = parseInt($('input[name=b]').val(), 10);
if ($('#realOperator').val() == ('+')){
$('#total').val(a+b);
} else {
$('#total').val(a-b);
}
}
if语句之间有分号(;)。
此外,您不需要像 ('+') 这样的运算符用括号括起来。你可以只写'+'。
您还错过了 else 的“{”,但您已经关闭了。
您应该试试这个代码:
function Operator() {
if ($('#realOperator').val == '+'){
var a = parseInt($('input[name=a]').val());
var b = parseInt($('input[name=b]').val());
$('#total').val(a+b);
}else{
$('#total').val(a-b);
}
}
您的代码中存在一些语法错误,例如此处:
if ($('#realOperator').val == ('+');){
。分号是不必要的。方法
.val()
将得到输入值字符串。您必须将其转换为 number.最好将逻辑与标记分开。因此,将您的
Operator
函数定义为一个纯函数,它接受两个数字和一个运算符,并计算结果。
function operator(a, b, operation) {
if (operation === '+') {
return a + b;
}
else if (operation === '-') {
return a - b;
}
// you can implement more operations like * / %
throw new Error('Unhandled Operation');
}
$(function () {
$('[data-role="operator"]').on('click', function () {
var operation = $(this).text();
var a = $('#a').val() * 1; // make it number
var b = $('#b').val() * 1; // make it number
$('#total').val( operator(a, b, operation) );
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="a" type="text" />
<input id="b" type="text" />
<button data-role="operator">+</button>
<button data-role="operator">-</button>
<hr />
<input id="total" />