JQuery расчет нуждается в помощи.

0

Проблема заключается в том, что, когда вы нажимаете знак равенства на калькуляторе, он говорит, что Uncaught ReferenceError: Invalid left-hand side in assignment. Может кто-нибудь объяснить мне, что я делаю неправильно

$("#Num_View").val($("#Num_View").val() = eval($("#Num_View").val()));
  • 2
    eval() пользовательский ввод, скорее всего, плохая идея, и я подозреваю, что это корень вашей проблемы. Вероятно, eval() интерпретирует ваш = как назначение в Javascript.
  • 0
    Я предполагаю, что вы хотели ввести $("#Num_View").val(eval($("#Num_View").val())) ?
Показать ещё 1 комментарий
Теги:

2 ответа

1

Вы устанавливаете возврат функции val() (которая является строковым литералом), равным чему-то другому. Это невозможно.

$("#Num_View").val() = eval($("#Num_View").val()

Эта часть бросает ошибку. Если вы хотите сравнить эти значения, вам нужно использовать double equals == OR, если вы хотите установить значение, необходимое для передачи его в качестве параметра функции val, например

$("#Num_View").val(eval($("#Num_View").val())
  • 0
    Спасибо, это очень помогло.
0

Вы пытаетесь присвоить значение результату функции, которая возвращает строку, которая недействительна.

Я думаю, что вы собираетесь это сделать:

$("#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() вход пользователя определенно плохая идея.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню