更改时删除服务器端验证格式更改

时间:2015-09-18 14:37:56

标签: javascript asp.net

我有一个功能可以验证输入服务器端并将焦点设置为缺少的项目,并使项目边框变为红色。这一切都有效,我正在努力解决一旦所选索引发生变化或文本框有值后如何处理删除红色边框?处理这个问题的最佳方法是什么? 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";
                }
            });
        })

2 个答案:

答案 0 :(得分:0)

你需要查看页面源并根据这些方法添加javascript,如果ID在那里,那么javascript on change function应该触发。

Javascript是客户端,因此无需将其粘贴到服务器控制页面中。 如果你给我们一个URL就很容易了。

这个带有服务器端ID呈现的document.getElementbyID可能无济于事,除非您告诉我们它是否实际上是从服务器向您的客户端提供ID。

是否可以粘贴您在页面的查看源模式中获得的脚本。

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

答案 1 :(得分:0)

你的脚本似乎运行正常。将JavaScript置于控件或页面中的问题然后将其置于控制之中,因为您将在多个页面上使用控件,这是控制的主要目的,因此在每个页面上放置脚本时,最好将其置于控制之中。

现在对于边境问题我有简单的方法。 制作一个CSS课程

.MakeBorderRed{ border-color: #ff0000 }

然后替换以下代码

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