Проблема заключается в том, что, когда вы нажимаете знак равенства на калькуляторе, он говорит, что Uncaught ReferenceError: Invalid left-hand side in assignment
. Может кто-нибудь объяснить мне, что я делаю неправильно
$("#Num_View").val($("#Num_View").val() = eval($("#Num_View").val()));
Вы устанавливаете возврат функции val() (которая является строковым литералом), равным чему-то другому. Это невозможно.
$("#Num_View").val() = eval($("#Num_View").val()
Эта часть бросает ошибку. Если вы хотите сравнить эти значения, вам нужно использовать double equals ==
OR, если вы хотите установить значение, необходимое для передачи его в качестве параметра функции val, например
$("#Num_View").val(eval($("#Num_View").val())
Вы пытаетесь присвоить значение результату функции, которая возвращает строку, которая недействительна.
Я думаю, что вы собираетесь это сделать:
$("#Num_View").val($("#Num_View").val() + ' = ' + eval($("#Num_View").val()));
Что бы преобразовать пользовательский ввод 2 + 3
в 2 + 3 = 5
.
Или лучше:
$("#Num_View").val(function(_, oldValue) {
return oldValue + ' = ' + eval(oldValue);
});
Однако, eval()
вход пользователя определенно плохая идея.
eval()
пользовательский ввод, скорее всего, плохая идея, и я подозреваю, что это корень вашей проблемы. Вероятно,eval()
интерпретирует ваш=
как назначение в Javascript.$("#Num_View").val(eval($("#Num_View").val()))
?