启用禁用文本框

时间:2014-05-02 10:39:32

标签: javascript

<script type="text/javascript">
    function disablefield() {
        if (document.getElementById('chkTaxApplicable').checked == true) {
            document.getElementById('ddlTaxCode').value = '';
            document.getElementById('ddlTaxCode').disabled = false;
        }
        else 
         {
            document.getElementById('ddlTaxCode').disabled = true;
        }
    }
</script>

这是我的代码。我想在checked = true上启用下拉列表,反之亦然。 但我没有得到这个代码的任何输出。我应该使用更好的东西吗?

这是使用上述javascript的html部分。

 <asp:CheckBox ID="chkTaxApplicable" runat="server" AutoPostBack="True" 
                                             onclick="javascript:disablefield() " 
                                         />
                                        </td>

                                   </tr>
                                   <tr>
                                   <td align="right" valign="middle" class="style41">Purchase Tax Code</td>
                                      <td align="left" valign="middle" class="style42">:</td>
                                      <td align="left" valign="middle" class="style43">
                                          <asp:DropDownList ID="ddlTaxCode" runat="server" Enabled="False"> 

4 个答案:

答案 0 :(得分:2)

您必须更改一些HTML / ASPX代码

第一

onchange = "disablefield(this)" 

而不是

onclick="javascript:disablefield() "

您可以将this作为对函数的引用,其中this将是更改的当前对象。

在javascript中,您可以处理this对象,如下所示。

function disablefield(elem) {
    if (elem.checked) {
        document.getElementById('ddlTaxCode').value = '';
        document.getElementById('ddlTaxCode').disabled = false;
    } else {
        document.getElementById('ddlTaxCode').disabled = true;
    }
}

如果您没有使用this作为参考,则必须使用.CliendID,因为您的复选框是使用服务器控件生成的[ASP控制]。

因此,无论元素是服务器控件的哪个位置,您都可以尝试

if (document.getElementById('<%=chkTaxApplicable.ClientID%>') //Same way in textboxes

Demo with this reference

答案 1 :(得分:0)

使用此onchange="disablefield()"代替onclick="javascript:disablefield() "

答案 2 :(得分:0)

它对我有用。

我认为问题在于你没有调用disablefield()函数。

  

&lt; input id =&#34; chkTaxApplicable&#34;类型=&#34;复选框&#34;的onClick =&#34; disablefield();&#34;&GT;

在提供javascript代码时,你应该使用这个jsfiddle:http://jsfiddle.net / hbCwe / 2 /

编辑:

这是因为javascript:disabledfield();改为使用disabledfield(),如上所述。

答案 3 :(得分:0)

你可以使用eventhandler.ie。

var checkbox = document.getElementById('chkTaxApplicable'); checkbox.addEventListener('change',disableField(),false);