jQuery - синтаксическая ошибка в условном - PullRequest
1 голос
/ 21 сентября 2011
$(".editAd").change({
    if ($(this).val() == 1)
        {
            $("#submitBtn").val("Next Step");
        }
        else
        {
            $("#submitBtn").val("Submit Changes");
        }
    });

Во второй строке этого кода есть синтаксическая ошибка. Отсутствует: после идентификатора свойства. Я поклялся, что это было правильное использование val () в условных выражениях, но я полагаю, что могу ошибаться ...

Я знаю, что это довольно простое решение, но я не могу найти никаких ресурсов из нескольких минут исследований, и я надеялся, что пользователи SO могут мне помочь. :)

Спасибо!

РЕДАКТИРОВАТЬ: всегда есть глупая ошибка, которую делают разработчики, которая ставит их в тупик на некоторое время ... Всегда проверяйте ENTIRETY вашего кода на наличие ошибок, потому что инструменты разработчика могут фактически не подобрать правильную строку ошибки, так как в этом случае.

Ответы [ 4 ]

4 голосов
/ 21 сентября 2011

Вы забыли включить function () {}

$(".editAd").change(function(){
    if ($(this).val() == 1)
        {
            $("#submitBtn").val() = "Next Step";
            console.log($("#submitBtn").val());
        }
        else
        {
            (element.attr("name") == "submitBtn").val() = "Submit Changes"; // no idea  what this is but it doesn't look like it will work 
        }
    });
1 голос
/ 21 сентября 2011

val() - это выполнение функции.

для установки значения выполните что-то вроде

$('selector').val('set me');

, а не

$('selector').val() = 'set me';

.Другие вещи могут проясниться.

0 голосов
/ 21 сентября 2011

Есть много проблем с вашим кодом. Во-первых, причиной ошибки, о которой вы говорите, является отсутствующее ключевое слово function. Это необходимо, поскольку метод change принимает функцию в качестве аргумента.

Затем вы присваиваете значение методу val, что неверно ($("#submitBtn").val() = "Next Step";). Вам нужно передать строку в качестве аргумента.

В-третьих, ваш блок else очень запутан. Я не уверен, что вы пытались сделать там, но это оценивает что-то вроде true.val() = "Submit Changes";, что совершенно неправильно. Это еще одно назначение функции, и вы пытаетесь вызвать эту функцию для логического значения, а не для объекта jQuery.

Итак, исходя из всего этого, вот что я думаю вы пытались сделать:

$(".editAd").change(function(){
    if ($(this).val() == 1) {
        $("#submitBtn").val("Next Step");
        console.log($("#submitBtn").val());
    }
    else {
        if($(element).attr("name") == "submitBtn") {
            $(element).val("Submit Changes");
        }
    }
});
0 голосов
/ 21 сентября 2011

Missing : after property ID Это вызвано отсутствием идентификатора function () перед условным условием.Поскольку он был заключен в скобки {}, синтаксический анализатор javascript решил, что вы передаете литерал объекта с if в качестве идентификатора свойства.Он искал двоеточие после него, чтобы определить стоимость имущества.

Не уверен, что вы пытаетесь сделать в этой строке:

(element.attr("name") == "submitBtn").val() = "Submit Changes";

Но похоже, что вы пытаетесь вызвать val для логического значения, которое недопустимо.Вы также назначаете строку для вывода val(), которая не будет работать.

Чтобы присвоить значение элементу, jQuery val принимает один параметр:

element.val("Submit Changes");
...