如何使用javascript函数启用或禁用下拉选择值上的asp按钮?

时间:2014-02-10 07:20:11

标签: javascript asp.net vb.net javascript-events

我有asp下拉按钮,我想在下拉选择值为索引0时使按钮始终禁用,并在选择其他值时启用。

我的代码但它无效

function checkSelect()
{
if (document.getElementById('ddlSte').value == 'Select One')
   document.getElementById('StGoBtn').disabled = true;
else
   document.getElementById('StGoBtn').disabled = false;
}

控件:

<asp:DropDownList ID="ddlSte" runat="server" Width="162px" onchange='checkSelect(this);'>
             </asp:DropDownList>

 <asp:Button ID="StGoBtn" CssClass="buttnStyle" runat="server" Text="GO>>"></asp:Button>

4 个答案:

答案 0 :(得分:2)

Asp.NET中的控件与您在代码中声明的ID不同。

让解决方案正常工作的第一种方法是将DownDropListButton属性ClientIDMode声明为Static。这样,呈现的ID将与您在代码中声明的相同。

最好的办法,就是使用@Şhȇkhaṝ提案。例如,您可以将onchange属性定义为:

onchange='checkSelect(<%=ddlSte.ClientID %>, <%=StGoBtn.ClientID %>);'

然后将checkSelect函数重新定义为:

function checkSelect(ddlID, buttonID) { ... }

答案 1 :(得分:1)

在您的代码中使用<%=ddlSte.ClientID %><%=StGoBtn.ClientID %>

function checkSelect()
{
   if (document.getElementById('<%=ddlSte.ClientID %>').value == 'Select One')
       document.getElementById('<%=StGoBtn.ClientID %>').disabled = true;
   else
       document.getElementById('<%=StGoBtn.ClientID %>').disabled = false;
}

控件ID已更改如果您使用msterpaguser control,则需要使用ClientID获取实际IP

有关客户ID的更多详细信息 http://www.codeproject.com/Articles/34151/ASP-NET-4-0-Client-ID-Feature

答案 2 :(得分:1)

我使用jquery获得了这个结果。

    <script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
    $("#<%=StGoBtn.ClientID%>").hide();
    $("#<%=ddlSte.ClientID%>").change(function () {

        if ($("#<%=ddlSte.ClientID%>").val() == "Select One") {
            $("#<%=StGoBtn.ClientID%>").hide();               
        }
        else {
            $("#<%=StGoBtn.ClientID%>").show();

        }

    });

});
</script>

注意:

1.为了使用jquery,我们需要在你的html页面的head部分添加以下url

https://code.jquery.com/jquery-1.10.2.min.js

2. DropDown默认值(例如“ 选择一个 ”)必须是您比较jquery代码中的值的值,即; if($(“# &lt;%= ddlSte.ClientID%&gt;“)。val()==” 选择一个 “)

3.您无需在下拉列表中添加功能html.i.e;只需将其写为如下所示。

<asp:DropDownList ID="ddlSte" runat="server" Width="162px"></asp:DropDownList>

答案 3 :(得分:0)

试试这个

在ASPX中

   <div>  
    <select id="ddlSte" onchange="test();">
    <option value="0">select</option>
    <option value="1">1</option>
    <option value="2">2</option>
    </select> 
   </div>

在JavaScript中

   <script type="text/javascript"> 

    $(document).ready(function () {

        if (document.getElementById('ddlSte').value == '0')
            document.getElementById('StGoBtn').disabled = true;
        else
            document.getElementById('StGoBtn').disabled = false;
    });
    function test() {

        if (document.getElementById('ddlSte').value == '0')
            document.getElementById('StGoBtn').disabled = true;
        else
            document.getElementById('StGoBtn').disabled = false;
    }
    </script>