2012-06-21 48 views
1

我想用jquery更新<p>標記,但是,當我點擊'提交'按鈕時,我用innerHTML插入的文本迅速消失。除非我使用Firefox,在這種情況下,它似乎工作--IF - 我插入警報框。這聽起來像是某種時機問題。但我不確定它究竟是什麼,或者如何解決它。有沒有人有一個想法可能是什麼問題?不穩定的innerHTML行爲。文本消失

在此先感謝您的幫助!

$(document).ready(function(){ 
    $('#addCourse').live("submit", function(){ 
     //alert("Submit Function. hours = "+$('#hours').val()); 
     document.getElementById('hrs_planned').innerHTML = 'HOURS = '+INIT_PLANNED_HRS+2;//($('#hours').val())+' GPA'; 
    });     
    document.getElementById('hrs_planned').innerHTML = 'HOURS!! = '+INIT_PLANNED_HRS+' GPA'; 
}); 

和HTML

<li><h3>Planned Courses</h3><p id = "hrs_planned"> gpa </p></li> 
+1

由於沒有阻止默認提交的發生,您的頁面很可能會刷新。 –

+0

+1。將'return false'添加到提交處理程序。 – georg

+0

@ thg435好的,你會怎麼做? – Eman

回答

3

嘗試return false;

同樣使用on()而不是live()如果您使用jQuery 1.7,因爲live()已被刪除。詳情請參閱documentation
如果您使用的是jQuery 1.6.x或更早版本,請改爲使用delegate()

$(document).ready(function() { 
    $('#addCourse').on("submit", function(e) { 
     //alert("Submit Function. hours = "+$('#hours').val()); 
     document.getElementById('hrs_planned').innerHTML = 'HOURS = ' + INIT_PLANNED_HRS + 2; //($('#hours').val())+' GPA'; 
     return false; 
    }); 
    document.getElementById('hrs_planned').innerHTML = 'HOURS!! = ' + INIT_PLANNED_HRS + ' GPA'; 
});​ 

..或者如果失敗,你可以嘗試使用e.preventDefaulte.stopPropagation

$(document).ready(function() { 
    $('#addCourse').on("submit", function(e) { 
     // prevent default submit behaviour 
     e.preventDefault; 
     //alert("Submit Function. hours = "+$('#hours').val()); 
     document.getElementById('hrs_planned').innerHTML = 'HOURS = ' + INIT_PLANNED_HRS + 2; //($('#hours').val())+' GPA'; 

     // prevent event from bubbling up 
     e.stopPropagation; 
    }); 
    document.getElementById('hrs_planned').innerHTML = 'HOURS!! = ' + INIT_PLANNED_HRS + ' GPA'; 
});​ 
+0

實際上,我將它切換到打開狀態,它現在似乎正常工作!謝謝! – Eman