不稳定的innerHTML行为。文字消失了

时间:2012-06-21 19:26:21

标签: javascript jquery html innerhtml

我正在尝试使用jquery更新<p>标记,但是,当我单击“提交”按钮时,我使用innerHTML插入的文本很快就会消失。除非我使用Firefox,在这种情况下它似乎工作-IF-我插入警报框。这听起来像是某种时间问题。但我不确定它是什么或如何解决它。有谁知道问题可能是什么?

提前感谢所有帮助!

$(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 :(得分:3)

尝试return false;

如果您正在使用jQuery 1.7,on()已被定义,请使用live()代替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';
});​