2016-03-02 198 views
1

我在我的php文件中使用複選框。複選框:通過Ajax更改複選框的狀態

<label> 
    <input type="checkbox" id="response" name="response" value="email">Email 
</label> 

我正在使用Ajax從數據庫檢索數據。我想根據數據庫數據更改複選框的狀態。在數據庫中的數據是或。

我可以看到數據從數據庫中正常傳入,但我不知道如何使用它來更改複選框的狀態。

$("#autofill").change(function() { 
    $.ajax({ 
     type: "GET", 
     url: "autofill.php", 
     cache: false, 
     // dataType: 'json', 
     data: 'action1=' + data1, 
     success: function (data) { 
      data = JSON.parse(data); 
      $('#response').val(data.response); 
     } 
    }) 
}); 

按我的理解$('#response').val(data.response);將無法​​正常工作。但不知道我需要放在那裏。

謝謝你們。

回答

1

你可以在你的success回調中使用prop()方法如下。

success: function (data) { 
    data = JSON.parse(data); 
    $('#response').prop('checked', data.response == 1); //add this line 
} 

它會檢查該複選框,如果data.response1,否則取消選中。

3

在您成功功能設置的複選框選中

if(data.response) 
    $('#response').attr('checked','checked'); 

雖然使用道具的方法是更好的/真正更新

// new property method 
if(data.response) 
    $('#response').prop('checked', true); 

將檢查data.response認爲,計算結果爲真值

+1

對此使用.attr()已棄用,不應使用。 .prop()是正確的解決方案。 「從jQuery 1.6開始,對於尚未設置的屬性,.attr()方法返回未定義的值。要檢索和更改DOM屬性,例如表單元素的checked,selected或disabled狀態,請使用.prop()方法。 「 - http://api.jquery.com/attr/ – mhodges