Jquery.after函数

Jquery.after函数,jquery,css,asp.net,twitter-bootstrap,validation,Jquery,Css,Asp.net,Twitter Bootstrap,Validation,下面的代码来自.aspx文件 <div class="clearfix" style="margin-bottom: 10px"> <span class="spinfo">Name:</span> <div> <asp:TextBox runat="server" ID="txtname"></asp:TextBox> </div> </div> var err

下面的代码来自
.aspx
文件

<div class="clearfix" style="margin-bottom: 10px">
   <span class="spinfo">Name:</span>
   <div>
        <asp:TextBox runat="server" ID="txtname"></asp:TextBox>
    </div>
</div>
var error = true;    
$(document).ready(function () {
    $("#txtname").focusout(function () {
        error = false;
        $(".spana1").remove();
        if ($("#txtname").val() == "") {
            $("#txtname").after("<span class='spana1'>Please Enter your Name</span>");
            error = true;
        }
    });
});
下面的代码来自
.js
文件

<div class="clearfix" style="margin-bottom: 10px">
   <span class="spinfo">Name:</span>
   <div>
        <asp:TextBox runat="server" ID="txtname"></asp:TextBox>
    </div>
</div>
var error = true;    
$(document).ready(function () {
    $("#txtname").focusout(function () {
        error = false;
        $(".spana1").remove();
        if ($("#txtname").val() == "") {
            $("#txtname").after("<span class='spana1'>Please Enter your Name</span>");
            error = true;
        }
    });
});
var error=true;
$(文档).ready(函数(){
$(“#txtname”).focusout(函数(){
错误=错误;
$(“.spana1”).remove();
if($(“#txtname”).val()=“”){
$(“#txtname”)。之后(“请输入您的姓名”);
错误=真;
}
});
});
如果
#txtname
的内容等于null,则当其失去焦点时,应调用此raw:
$(“#txtname”)。在(“请输入您的姓名”)之后

但结果是:

但是我在
之后使用了
。当我尝试
.before
时,结果是一样的


原因可能是什么?

尝试使用CSS之类的

#txtname{
   float:left;
}
也要使用
$(this)
,而不是像这样反复使用同一个选择器

$(document).ready(function () {
    $("#txtname").focusout(function () {
        error = false;
        $(".spana1").remove();
        if (this.value == "") { // you can use $(this).val() also
            $(this).after("<span class='spana1'>Please Enter your Name</span>");
            error = true;
        }
    });
});
$(文档).ready(函数(){
$(“#txtname”).focusout(函数(){
错误=错误;
$(“.spana1”).remove();
如果(this.value==“”){//您也可以使用$(this.val()
$(此)。之后(“请输入您的姓名”);
错误=真;
}
});
});

使用。追加即可it@MustafaM Jalal,我试过了,但没有成功。谢谢你,它成功了,也谢谢你对.js的建议。你能解释一下为什么我的结果是这样吗?若我不使用float:left,那个么它可能是文本框的底部,但为什么之前使用它呢?我会在5分钟内接受。这是因为
span元素上的浮动
,如果您在控制台中检查它,那么您可以看到它。在
输入上应用float之后,它将首先显示在
左侧的错误元素之前。