2013-12-18 2 views
0

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

$("#Num_View").val($("#Num_View").val() = eval($("#Num_View").val())); 
+2

'eval() Пользовательский ввод пользователя, скорее всего, плохая идея, и я подозреваю, что это корень вашей проблемы. 'Eval()', вероятно, интерпретирует ваш '=' как назначение в Javascript. – Julio

+0

Я предполагаю, что вы намеревались ввести '$ (" # Num_View "). Val (eval ($ (" # Num_View "). Val()))'? –

+0

Как я могу это исправить? – cdw100100

ответ

1

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

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

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

$("#Num_View").val(eval($("#Num_View").val()) 
+0

Спасибо, это помогло много. – cdw100100

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() ИНГ пользовательский ввод, безусловно, плохая идея.

Смежные вопросы