无法从javascript显示标签
我正在验证javascript中的表单。 目标是:如果用户未在必填字段中输入值,则会显示错误消息,并在几秒钟后消失。 但是 问题是:错误消息没有显示,这可能是因为我无法从javascript在label控件中写入错误消息。但是,如果我使用javascript alert而不是显示标签,它就会工作 守则: Javascript无法从javascript显示标签,javascript,asp.net,client-side-validation,Javascript,Asp.net,Client Side Validation,我正在验证javascript中的表单。 目标是:如果用户未在必填字段中输入值,则会显示错误消息,并在几秒钟后消失。 但是 问题是:错误消息没有显示,这可能是因为我无法从javascript在label控件中写入错误消息。但是,如果我使用javascript alert而不是显示标签,它就会工作 守则: Javascript <script type="text/javascript"> function showConfirmation() { $('div
<script type="text/javascript">
function showConfirmation() {
$('div#confirmationDV').show();
setTimeout(function () {
$('div#confirmationDV').fadeOut(5000);
});
}
function validateRequiredField() {
if (document.getElementById("<%=txtOfferTitle.ClientID%>").value == "") {
alert("error.....");//this alert works.
document.all("<%=lblConfirmation.ClientID%>").innerHTML = "please enter your business name"; // this does not work
document.all("<%=lblConfirmation.ClientID%>").style.color = "red";
showConfirmation();
document.getElementById("<%=txtOfferTitle.ClientID%>").focus();
return false;
}
return true;
}
</script>
如果有人能帮我找出错误就好了。。
干杯您混合使用jQuery和IE Only JScript 确保只使用jQuery或跨浏览器JavaScript 改变
function validateRequiredField() {
if (document.getElementById("<%=txtOfferTitle.ClientID%>").value == "") {
alert("error.....");
document.all("<%=lblConfirmation.ClientID%>").innerHTML = "please enter your business name";
document.all("<%=lblConfirmation.ClientID%>").style.color = "red";
showConfirmation();
document.getElementById("<%=txtOfferTitle.ClientID%>").focus();
return false;
}
return true;
}
函数validateRequiredField(){
if(document.getElementById(“”).value==“”){
警报(“错误…”);
document.all(“”.innerHTML=“请输入您的企业名称”;
document.all(“”).style.color=“红色”;
showConfirmation();
document.getElementById(“”.focus();
返回false;
}
返回true;
}
到
$(“#”)。单击(函数(e){
var txtOffer=$(“#”)的价值;
var txtofferbl=$(“#”);
if(txtOffer.val()==“”){
警报(“错误…”);
txtofferbl.text(“请输入您的企业名称”);
txtofferbl.addClass(“错误”);
showConfirmation();
txtoff.focus();
e、 预防默认值();
}
否则{
txtofferbl.text(“”);
txtofferbl.removeClass(“错误”);
}
});
您的验证是在客户端还是服务器端完成的?如果是客户端,那么为什么在验证函数中使用asp标记?它在客户端。在validateRequiredField()函数中。您在谈论什么asp标记?document.all(“”.innerHTML=“请输入您的企业名称”;//这不起作用文档。all(“”).style.color=“红色"; 这些标签将在服务器端na替换?您是否检查了通过查看浏览器中显示的页面的源来替换的值?:)这些行都有效。将“ClientID”替换为控件的实际ID。现在我有一个转折点,上面的代码可以在Chrome和IE上运行,但在firefox中不起作用。:)谢谢你的回答。但它不起作用。我需要在页面加载事件中添加任何内容吗??仅供参考,我的代码在Chrome和IE中运行,但在Firefox中不起作用。如需进一步帮助,将不胜感激。:)如果不查看实际页面及其呈现的输出,我无法保证我的代码正常工作,因为我假设了很多事情。例如,您需要一个样式:.error{color:red}
@kandroid您可以返回对我的问题发表评论吗?
<asp:ImageButton ID="iBtnSave" runat="server" ImageUrl="~/images/createOffer.png"
onclick="iBtnSave_Click" OnClientClick="return validateRequiredField()" />
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
iBtnSave.Attributes.Add("onclick", "return validateRequiredField()");
//some other stuff
}}
function validateRequiredField() {
if (document.getElementById("<%=txtOfferTitle.ClientID%>").value == "") {
alert("error.....");
document.all("<%=lblConfirmation.ClientID%>").innerHTML = "please enter your business name";
document.all("<%=lblConfirmation.ClientID%>").style.color = "red";
showConfirmation();
document.getElementById("<%=txtOfferTitle.ClientID%>").focus();
return false;
}
return true;
}
$("#<%=iBtnSave.ClientID%>).click(function(e) {
var txtOffer = $("#<%=txtOfferTitle.ClientID%>");
var txtOfferLbl = $("#<%=lblConfirmation.ClientID%>");
if (txtOffer.val() == "") {
alert("error.....");
txtOfferLbl.text("please enter your business name");
txtOfferLbl.addClass("error");
showConfirmation();
txtOffer.focus();
e.preventDefault();
}
else {
txtOfferLbl.text("");
txtOfferLbl.removeClass("error");
}
});