2015-09-18 82 views
0

我有一个函数验证输入服务器端并将焦点设置为缺少的项目,并使项目边框变为红色。这一切都起作用,我一直在努力如何处理删除红色边框,一旦选定的索引已更改或文本框中有一个值?处理这个问题的最好方法是什么? JavaScript的?我已经尝试了下面的JavaScript,但由于字段和下拉列表位于usercontrols中,我不确定这是否正确。我已经尝试将javascript放在服务器控件ascx页面和提交按钮所在的aspx页面中。删除服务器端验证格式更改更改

的Javascript:

$(document).ready(function() { 
      var companyRelation = document.getElementById('<%=ddlCompanyRelationship.ClientID %>'); 
      $('#ddlCompanyRelationship').change(function() { 
       if (companyRelation.options.value != "-1") { 
        companyRelation.style.border = "#bebebe"; 
       } 
      }); 
     }) 

回答

0

你需要看看页面的源代码,并添加按照这些方法的JavaScript如果ID是那么有上的JavaScript函数的变化应触发。

Javascript是客户端,所以不需要将其粘贴到服务器控制页面。 如果你给我们一个网址,这将很容易。

带有服务器端ID渲染的document.getElementbyID可能没有帮助,除非您告诉我们它是否实际上将您的服务器ID发送给您的客户端。

您可以将您获得的脚本粘贴到页面的视图源模式中。

尝试仅使用jQuery来选择该元素并更改其CSS以显示更改的另一种颜色,并使用console.log查看该事件是否实际触发。

+0

我遇到的问题是,在用户控件的标记不是在aspx页面范围被调用JavaScript验证? – AG2275

0

你的脚本似乎工作正常。将JavaScript放在控件或页面中的问题随后会将其放在控制之中,因为您将在多个页面上使用控件,这是控制的主要目的,所以在每个页面上放置脚本时,最好将它放在控件中。

现在对于边界问题我有简单的方法。 做一个CSS类

.MakeBorderRed{ border-color: #ff0000 } 

然后替换下面的代码

if (companyRelation.options.value != "-1") 
{ 
    $('#ddlCompanyRelationship').addClass("MakeBorderRed"); 
} 
else 
{ 
    $('#ddlCompanyRelationship').removeClass("MakeBorderRed"); 
}