我有一個旨在鼓勵管理員用戶選擇他們存在的現有名稱條目,但隨後可對其進行修改的接口。兩個Chrome瀏覽器用戶從Ajax調用不同的結果
渲染代碼開始了,像這樣
<td class="selectname" colspan="2" style="width: 220px; display: table-cell;">
<select name="PersonSelect" id="PersonSelect" style="font-size:10px">
<option></option>
<option value="123">Aamodt, Jodi</option>
...
而作出選擇後,選擇價值被清除,TD隱藏
<td class="selectname" colspan="2" style="width: 220px; display: none;">
和兩個新的輸入是顯示:
<td class="entername" style="display: table-cell;"><input type="text" size="12" name="First" id="First" value="" class="required valid"></td>
<td class="entername" style="display: table-cell;"><input type="text" size="12" name="Last" id="Last" value="" class="required valid"></td>
所引起的問題是,管理員的人告訴我,當他在選擇菜單,沒有什麼改變選擇的人 - 例如文本輸入不出現,選擇輸入不會消失。
用戶和我都在Chrome中訪問該頁面。用戶不是特別的技術,但給出截圖明確的症狀。由於JavaScript驗證例程在這些相同頁面加載期間爲用戶取得成功,因此他的Chrome中沒有關閉JavaScript。用戶和我正在加載相同的數據集,因此這不應該是與數據本身有關的破壞問題。
ajax更改函數如下。
有什麼建議嗎?
$("#PersonSelect").change(function() {
$.ajax({
url: 'person_form_populater.php?person=' + $("#PersonSelect").val() + '&entity=' + $("#Entity").val(),
dataType: 'json',
success: function(data) {
if (data['found']) {
alert('There is already a record linking that person to this entity');
$('#First_' + data['found']).focus();
var origColor = $('#bmformtable_' + data['found']).css("background-color");
$('#bmformtable_' + data['found']).css("border", '0px solid #f00');
$('#bmformtable_' + data['found']).animate({
borderWidth: 5
}, 2000, "linear", function() {
$('#bmformtable_' + data['found']).animate({
borderWidth: 0
}, 2000, "linear", function() {
});
});
} else {
$('#togglelink').click();
$('#First').val(data['First']);
$('#Last').val(data['Last']);
$('#Occupation').val(data['Occupation']);
if (data['Gender'] == 'Male') {
$("#Gender").attr('checked',true);
} else if (data['Gender'] == 'Female') {
$("#Gender2").attr('checked',true);
} else {
$("#Gender").attr('checked',false);
$("#Gender2").attr('checked',false);
}
$('#Race').val(data['Race']);
$('#Income').val(data['Income']);
$('#Person').val(data['ID']);
}
}
});
});
//編輯 此功能允許用戶爲「取消選擇」加載的記錄,並再次進入選擇菜單:
$("#togglelink,#togglelink2").click(function(){
$('#PersonSelect option').attr('selected', false);
$('#First').val('');
$('#Last').val('');
$('#Occupation').val('');
$("#Gender").attr('checked',false);
$("#Gender2").attr('checked',false);
$('#Race').val('');
$('#Income').val('');
$('#Person').val('');
$(".entername, .selectname, #togglelink, #togglelink2").toggle();
});
,我認爲它是一個會話/ cookie的問題,請嘗試清潔一切,嘗試強制刷新,也嘗試這找出任何錯誤http://stackoverflow.com/questions/8041148/show-proper-error-messages- with-jquery-ajax – feco 2013-02-18 16:52:53
'$('#togglelink')。click();'做什麼? – 2013-02-18 16:55:03
謝謝你的回覆feco。您建議用戶應該在Chrome瀏覽器中訪問「設置>高級設置>隱私>清除瀏覽數據」,然後按Ctrl + F5? – jerrygarciuh 2013-02-18 16:55:21