Javascript jquery为什么。文本自动隐藏

Javascript jquery为什么。文本自动隐藏,javascript,jquery,html,hide,Javascript,Jquery,Html,Hide,我觉得很奇怪,如果我在表单提交的errordiv上显示一个错误,它们就会立即消失 我的测试代码 <!DOCTYPE html> <html> <head> <title>TEST</title> <script src="//code.jquery.com/jquery-1.11.0.min.js"></script> </head> <body> <form met

我觉得很奇怪,如果我在表单提交的errordiv上显示一个错误,它们就会立即消失

我的测试代码

<!DOCTYPE html>
<html>
<head>
    <title>TEST</title>
    <script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
</head>
<body>
<form method="post" id="fid" action="#">
    <input type="text"><div id="err"></div>
    <input type="submit" value="Submit" name="button" />
</form>


<script type="text/javascript">
    $(function(){
        $('#fid').submit(function(){
            $('#err').text('Hello World');
            //$('#err').html('Hello World');
        });
    });
</script>
</body>
</html>

试验
$(函数(){
$('#fid')。提交(函数(){
$('#err').text('Hello World');
//$('#err').html('Hello World');
});
});
我只是显示一条错误消息,不管用户是否将字段留空,也不管是否只是为了检查,一旦我成功地获取了该字段,那么我将去实现完整的功能

请注意:错误混乱出现不到一秒钟,然后自动消失


关于

您需要使用preventDefault或返回false来阻止表单提交

$('#fid').submit(function(e){
    e.preventDefault();
    $('#err').text('Hello World');
});
请记住添加逻辑,以便仅在发生错误时防止默认设置,否则表单将永远不会提交

$(function(){
        $('#fid').submit(function(e){
            $('#err').text('Hello World');
            //$('#err').html('Hello World');
            e.preventDefault();
        });
    });
您需要停止表单提交。

;停止表单提交操作

$(function(){
        $('#fid').click(function(e){
           e.preventDefault();
            $('#err').text('Hello World');
            //$('#err').html('Hello World');
        });
    });

如果调用此方法,则不会触发事件的默认操作

在我看来,您需要执行一些验证,然后可以执行以下操作:

$(function(){
    $('#fid').submit(function(e){
       if($.trim($(this).find(':text').val()) == ''){
         $('#err').text('Hello World');
         e.preventDefault();
       }
    });
});

错误混乱出现不到一秒钟,然后自动消失

这是因为
表单
的默认行为,其属性
操作
定义为将值提交给。即使您在操作中执行了
#
,该行为也不会阻止它提交到当前页面

$(function(){
    $('#fid').submit(function(e){
        $('#err').text('Hello World');
        //$('#err').html('Hello World');
        e.preventDefault();
    });
});

您需要使用e.preventDefault()阻止表单提交;因此,在.submit()方法中调用e.preventDefault()

您的
$(“#fid”).submit()
会触发回发,因此页面会重新加载,错误文本会消失,因为它只显示在回发上。为什么这是正确的答案?请用您的代码提供一些解释。似乎出于某种原因我不能这样做。@balachandran
请删除否决票
,作为一名技术人员,您不应该使用像
这样的词语乞讨。举起你的衣领,编辑你的帖子,然后通知他(Sevensacat),他将取消下一轮投票。。