2012-02-21 2 views
0

Я пытаюсь получить запрос ajax, чтобы пометить поле, если возвращается определенное значение.ajax checkbox call

В принципе у меня есть следующий код:

 for(var id in data) {   
       $(id).val(data[id]); 
       if($(newsletter).val(data[newsletter])) { 

         $('#newsletter').prop('checked', true); 

       } 
    } 

Теперь я попытался следующий код и никаких костей.

for(var id in data) {   
       $(id).val(data[id]); 
       if($(newsletter).val(data[newsletter] == 1)) { 

         $('#newsletter').prop('checked', true); 

       } 
    } 

Это установите флажок для какого-либо результата возвращается, однако, если значение равно 1, я хотел бы, чтобы затем установите флажок, если другое значение возвращается, я хотел бы, чтобы не быть галочкой.

Если я что-то не так, пожалуйста, дайте мне знать, поскольку я новичок в jQuery и stackoverflow.

+0

В первом случае вы написали '$ (информационный бюллетень)', после чего '$ ('# newsletter')'. Зачем? Являются ли они разными объектами? Где определен идентификатор '' бюллетень'? Что содержит данные? Где находится остальная часть кода? Более конкретно! – papaiatis

ответ

0

Может быть, это может работать: if($(newsletter).val() == 1... или: if(data[newsletter] == 1)...

, кажется, у вас есть есть недостающее назначение: может быть, вы имеете в виду var newsletter = $(id).val(data[id]); я не могу понять это. Пожалуйста, объясните, как объявляется информационный бюллетень.

+0

Привет, массив, который возвращается из json: '$ arr = array ('input # fname' => $ fname, 'input # lname' => $ lname, '#emailAddress' => $ email, '#newsletter '=> $ newsletter); echo json_encode ($ arr); 'поэтому сам код исходит от PHP через json. –

0

Я предполагаю, что data - это объект, возвращенный через AJAX, и что data[newsletter] - это допустимый способ доступа к некоторому свойству этого объекта, который вы хотите проверить.

Если это так, то следующий должен работать:

if (data[newsletter] === 1) { 
    $('#newsletter').prop('checked', true); 
} 

Кроме того, причина того, что код if($(newsletter).val(data[newsletter] == 1)) { устанавливает, что проверяется на любое значение, потому что то, что вы на самом деле тестирование с if является возвращаемого значения из вызова .val(), который является объектом jQuery, , который всегда будет оцениваться как истинный, даже если нет элементов, соответствующих селектору.

Protip: Если вы хотите проверить, соответствует ли какой-либо элемент jQuery любым элементам, проверьте свойство .length.

например.

if ($('.my_selector:eq(0)').length) { 
    alert('Found one!'); 
}